来自 App.cs 中的 OnLaunched
正在运行...
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = "da-DK";
但这些都不是......
System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = new System.Globalization.CultureInfo("da-DK");
System.Globalization.CultureInfo.DefaultThreadCurrentCulture = new System.Globalization.CultureInfo("da-DK");
我没有反射(reflect)它,但后者不应该同样好吗?
我这里漏掉了一点吗?
最佳答案
两者的区别在于System.Globalization.CultureInfo.DefaultThreadCurrentCulture = new System.Globalization.CultureInfo("da-DK");
用于定义新创建的线程的默认区域性。这意味着已经运行的线程不会受其影响。要更改已运行线程的区域性,您需要使用该正在运行的线程内的 System.Globalization.CultureInfo.CurrentCulture 属性。
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = "da-DK";
范围更广,也会修改已经运行的线程。但它更多地被用作应用程序中的“语言选择”,而不是作为 CultureInfo 的替代品(CultureInfo 不仅用于语言,还用于转换、指标、格式等)
关于windows-8 - 如何在 Windows 8 应用程序中指定区域性的根本性改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12106919/