How can i globally set the Culture in a WPF Application?

前端 未结 5 1460
醉话见心
醉话见心 2020-12-10 13:01

I would like to set the Culture of a WPF application to a specific one based on user preferences.

I can do this for the current thread via Thread.CurrentThrea

5条回答
  •  猫巷女王i
    2020-12-10 13:42

    ok so this is what I use in order to make sure all of my app is in a en-US culture.

    CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US");
    CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("en-US");
    XmlLanaguage lang = XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag);
    FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(lang));
    FrameworkContentElement.LanguageProperty.OverrideMetadata(typeof(System.Windows.Documents.TextElement), new FrameworkPropertyMetadata(lang));
    

    in order to make a single thread in a culture you can make

    Thread.CurrentThread.CurrentCulture = new CultureInfo("EN-US");
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("EN-US");
    

提交回复
热议问题