Как получить формат региона Windows?
В панели управления Windows есть выпадающий список, в котором мы можем изменить региональный формат (controlPanel => Region => Форматы (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
справедливо'
и когда я меняю формат в панели управления, они не меняются.
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
, И в этом случае нет необходимости закрывать и снова открывать программу.