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