簡體   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