2016-09-11 6 views
-1

В панели управления Windows есть поле со списком, в котором мы можем изменить региональный формат (controlPanel => Region => Formats (окна 10)). Например, персидский или английскийКак получить формат региона Windows?

Я хочу получить эту региональную настройку в своем приложении.

Я попытался следующий код:

 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 является «фа-ИК»

и когда я изменить формат на панели управления они не меняются.

+0

Не является ли 'fa-IR' тем, кого вы ожидаете? Кроме того, вы попробовали: 'start application => check culture => изменить формат области => перезапустить приложение и снова проверить? Я думаю, что это только изменится после перезапуска приложения. – Stefan

+0

Я перезапускаю свое приложение, но оно не изменяется. –

+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. И в этом случае нет необходимости закрывать и повторно открывать программу.

Смежные вопросы