[英]How to change CultureInfo.CurrentCulture in a C#/Windows Store app
我想要string.Format()
和.ToString()
调用使用不变区域性,而不是系统区域性。
System.Globalisation.CultureInfo.CurrentCulture
属性在Windows应用商店应用中为只读属性,因此与.NET 4.6及更高版本不同,它不能直接更改。
我尝试使用System.Globalization.CultureInfo.DefaultThreadCurrentCulture
(根据文档应该可以使用),但是它没有任何改变:
System.Globalization.CultureInfo.DefaultThreadCurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = System.Globalization.CultureInfo.InvariantCulture;
var c1 = System.Globalization.CultureInfo.CurrentCulture;
Task.Run(delegate
{
var c2 = System.Globalization.CultureInfo.CurrentCulture;
});
执行上述代码后,c1和c2仍然包含我的本地系统区域性,而不是不变区域性。 string.Format
仍使用我的本地区域性设置生成字符串。
当然,必须有一种方法来更改线程的区域性吗?
我已将以下代码添加到App.Xaml.cs
构造函数中。 (就在this.InitializeComponent();
),它对我this.InitializeComponent();
。
var culture = CultureInfo.InvariantCulture;
ApplicationLanguages.PrimaryLanguageOverride = culture.Name;
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.