繁体   English   中英

我应该在哪里更改/设置WPF应用程序中的区域性信息设置,为什么? (必须适用于所有.NET Framework 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);

           }

什么是实现此目标的正确方法? 我应该在哪里设置呢? 我认为每次打开/加载窗口都设置它不是一个好主意吗?

我应该在哪里设置呢?

只需打开自动生成的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);
    }
}

当应用程序启动时,将调用此方法一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM