我有一个绑定到字符串的文本块。我希望该字符串在应用程序的当前UI文化中显示。我想在XAML中这样做。文本块很简单,如下所示。

<TextBlock Text="{Binding Path=Text}"/>

有帮助吗?

解决方案

您需要设置 FrameworkElement.Language 财产。对于整个应用程序,最简单的方法是覆盖财产元数据 App 类静态构造函数:

public partial class App : Application
{
    static App()
    {
        FrameworkElement.LanguageProperty.OverrideMetadata(
            typeof(FrameworkElement),
            new FrameworkPropertyMetadata(
                XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
    }
}

如果您只想为特定控制设置文化,则可以绑定它 Language 属性到您的dataContext的属性:

<TextBlock Text="{Binding Something}" Language="{Binding TheLanguage}" />
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top