Установка CurrentUICulture ничего не делает - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь изменить форматирование чисел в моем приложении WPF.Я хочу, чтобы международное стандартизированное форматирование (пробел как разделитель тысяч), а также "-" как символ NaN.

Я клонирую CultureInfo и устанавливаю NumberFormatInfo, затем устанавливаю это как Thread.CurrentThread.CurrentCulture в конструктореглавное окно (я тоже пробовал в WindowLoaded).Я также установил CultureInfo.DefaultThreadCurrentCulture и * CurrentUICulture для хорошей оценки.

Но ничего не работает.Форматирование чисел в метках остается стандартным форматом США (запятая как разделитель тысяч).Почему приложение не отвечает на мои настройки культуры?

Вот полный код, хотя я пробовал много вариантов его, поэтому я подозреваю, что реальный код не проблема, но я что-то неправильно понимаюо том, как работают культуры:

        CultureInfo myNumberCulture = (CultureInfo)CultureInfo.InvariantCulture.Clone();
        myNumberCulture.NumberFormat = new NumberFormatInfo
        {
            NaNSymbol = "--",
            NumberGroupSeparator = " ",
            PercentGroupSeparator = " ",
            CurrencyGroupSeparator = " ",
            NumberDecimalSeparator = ".",
            PercentDecimalSeparator = ".",
            CurrencyDecimalSeparator = "."
        };
        Thread.CurrentThread.CurrentCulture = myNumberCulture;
        CultureInfo.DefaultThreadCurrentCulture = myNumberCulture;

1 Ответ

0 голосов
/ 04 июня 2019

Суть в том, что Labels игнорирует культуру потока при выполнении встроенного форматирования чисел.Однако ToString нет.Поэтому мое решение / обходной путь состоял в том, чтобы явно вызвать ToString для номера, прежде чем устанавливать его в качестве содержимого метки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...