问题
I have a TextBlock bound to a string. I want the string to be displayed in current UI culture of the application. I want to do this in XAML. The text block is simple like below.
<TextBlock Text="{Binding Path=Text}"/>
回答1:
You need to set the FrameworkElement.Language
property. The easiest way to do that for the whole application is to override the property metadata in the App
class static constructor:
public partial class App : Application
{
static App()
{
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
}
}
If you only want to set the culture for a specific control, you can bind its Language
property to a property of your datacontext:
<TextBlock Text="{Binding Something}" Language="{Binding TheLanguage}" />
来源:https://stackoverflow.com/questions/3735064/how-to-set-current-cultureui-via-xaml-binding