Несмотря на то, что я установил в Windows французский региональный формат и запятую в качестве десятичного знака, UWP CurrencyFormatter по-прежнему отображает точку - PullRequest
0 голосов
/ 30 ноября 2018

Для приложения UWP мне написали следующий конвертер.

public class CurrencyConverter : IValueConverter
{
    private readonly CurrencyFormatter _userCurrencyFormatter;
    private readonly CultureInfo _userCulture;

    public CurrencyConverter()
    {
        var userCurrency = Windows.System.UserProfile.GlobalizationPreferences.Currencies[0];
        _userCurrencyFormatter = new CurrencyFormatter(userCurrency);
        _userCulture = new CultureInfo(Windows.System.UserProfile.GlobalizationPreferences.HomeGeographicRegion);
    }

    public object Convert(object value, Type targetType, object parameter, string language) => value == null ? null : _userCurrencyFormatter.Format((double)(decimal)value);

    public object ConvertBack(object value, Type targetType, object parameter, string language) => decimal.TryParse((string)value, NumberStyles.Number, _userCulture, out var result) ? (decimal?)result : null;
}

Моя настройка:

  • Окно во Францию ​​
  • Региональный форматна французский
  • десятичный символ с запятой
  • Раскладка клавиатуры на французский (Франция)

Однако

  • Моя цифровая клавиатура наклавиатура по-прежнему отображает точку, а не запятую
  • Преобразователь отображает валюту с евро, но с точкой, а не запятой

ОБНОВЛЕНИЕ:

  • отображаются десятичныес точкой в ​​TextBlock
  • однако я должен использовать запятую при вводе десятичной дроби в TextBox

Вот несколько скриншотов моей установки

decimal separator to comma regional setup to France Keyboard layout to France

ОБНОВЛЕНИЕ:

Вот скриншот моегоконвертер, в котором мы видим, что, несмотря на то, что языком является французский, а RegionCode - FR, DecimalFormatter отображает точку в качестве разделителя, а не запятую.

enter image description here

1 Ответ

0 голосов
/ 01 декабря 2018

Приложения UWP используют «основной» язык в качестве языка отображения приложения - поэтому, если в настройках системы вы используете английский в качестве первого языка, приложение будет использовать английский как Culture и UICulture, и, следовательно, форматирование будетсоответствует английскому.

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