繁体   English   中英

如何在C#/ Windows应用商店应用中更改CultureInfo.CurrentCulture

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM