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

Другие вопросы по тегам