在Windows的控制面板中有一个组合框,我们可以在其中更改区域格式(controlPanel => Region => Formats(windows 10))。例如波斯语或英语
我想在我的应用程序中检索此区域设置。
我尝试了这样的代码:
CultureInfo ci = CultureInfo.InstalledUICulture;
var installed = ci.Name;
ci = CultureInfo.CurrentUICulture;
var currentUi = ci.Name;
ci = CultureInfo.CurrentCulture;
var current = ci.Name;
但installed
和currentUi
始终是' en-US' current
是' fa-IR'
当我更改控制面板中的格式时,他们不会改变。
答案 0 :(得分:-1)
我使用了这段代码。
Thread.CurrentThread.CurrentCulture.ClearCachedData();
var thread = new Thread(s => ((State)s).Result = Thread.CurrentThread.CurrentCulture);
var state = new State();
thread.Start(state);
thread.Join();
var culture = state.Result;
然后我们使用culture.Name
。
在这种情况下,没有必要关闭并重新打开程序。