簡體   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