我应该 change/set 在我的 WPF 应用程序中设置区域性信息,为什么? (必须适用于所有 .NET 框架 4.0 及更新版本)
Where should I change/set culture info settings in my WPF app and why? (Must works on all .NET frameworks 4.0 and newer)
我正在尝试为我的 WPF 应用程序设置文化信息,我发现了几个示例,例如:
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US");
CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("en-US");
还有这样的东西:
protected override void OnStartup(StartupEventArgs e)
{
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); ;
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US"); ;
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
base.OnStartup(e);
}
实现此目标的正确方法是什么?我应该在哪里设置它?我认为每次设置它 windows 是 opened/loaded 不是个好主意吗?
And where should I set it?
只需打开自动生成的 App.xaml.cs
文件并覆盖 OnStartup
方法:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); ;
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US"); ;
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
base.OnStartup(e);
}
}
此方法在应用程序启动时调用一次。
我正在尝试为我的 WPF 应用程序设置文化信息,我发现了几个示例,例如:
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US");
CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("en-US");
还有这样的东西:
protected override void OnStartup(StartupEventArgs e)
{
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); ;
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US"); ;
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
base.OnStartup(e);
}
实现此目标的正确方法是什么?我应该在哪里设置它?我认为每次设置它 windows 是 opened/loaded 不是个好主意吗?
And where should I set it?
只需打开自动生成的 App.xaml.cs
文件并覆盖 OnStartup
方法:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); ;
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US"); ;
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
base.OnStartup(e);
}
}
此方法在应用程序启动时调用一次。