Windows 8 如何在Windows 8应用程序中指定区域性的根本性更改

Windows 8 如何在Windows 8应用程序中指定区域性的根本性更改,windows-8,Windows 8,从App.cs中的OnLaunched 这是有效的 Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = "da-DK"; 但这两个都不是 System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = new System.Globalization.CultureInfo("da-DK"); System.Globalization.Cult

从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");
我没有反射器,但后一个不也应该一样好吗


我在这里遗漏了一点?

两者的区别在于
System.Globalization.CultureInfo.DefaultThreadCurrentCulture=new System.Globalization.CultureInfo(“da DK”)
用于定义新创建线程的默认区域性。这意味着已经运行的线程不受其影响。要更改已运行线程的区域性,需要在该运行线程内使用
System.Globalization.CultureInfo.CurrentCulture
属性

Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = "da-DK";

具有更大的范围,并且还将修改已经运行的线程。但它更多的是作为应用程序中的“语言选择”使用,而不是作为CultureInfo(不仅用于语言,还用于转换、度量、格式等)的替代品使用。

但更改Windows.Globalization.ApplicationLanguages.PrimaryLanguagesOverride不会立即更改应用程序文化,需要重新启动/导航应用程序/框架,以便进行更改