Специальный стиль XAML для десятичных знаков

1

У меня этот номер 1234.456, он имеет 3 десятичных разряда, это может быть очень смутно для моих пользователей, некоторые из них интерпретируют nunber как тысячи, но все же им это нужно.

Как я могу сделать, чтобы стилировать эти числа?

Состязаясь, как этот образ:

Изображение 174551

ПРИМЕЧАНИЕ. Возможно, показывать десятичные знаки в другом цвете.

Любая помощь будет очень оценена.

EDIT 1: все, что я хочу, это шаблон Style (xaml) для применения, режим издания должен показывать номер нормальный, чтобы пользователь мог его модифицировать. Пока я полностью потерялся, я начинаю с этого.

Примечание. Я использую MVVM как основную архитектуру, привязку, необходимую для моего шаблона XAML

  • 1
    Десятичная точка - это то, что ожидает большинство пользователей. Но этот символ культуры в зависимости от (некоторые используют , , другие . ). Выведите десятичное значение с учетом настроек пользовательской культуры (используйте правильную перегрузку ToString ), чтобы пользователь не запутался .
  • 0
    @Sinatr Как бы вы взяли верхний индекс с перегрузкой?
Показать ещё 4 комментария
Теги:
xaml
wpf

1 ответ

2
Лучший ответ

вам нужно будет поместить два элемента на страницу, один для целочисленной части и один для десятичной части. Затем нарисуйте их так, как вы ожидали. Что-то вроде этого:

<TextBlock x:Name="IntPart" Text="1234." FontSize="12" />
<TextBlock x:Name="DecPart" Text="456" Margin="0,0,0,3" FontSize="8"  />

С привязками:

<TextBlock Text="{Binding IntPart}" FontSize="12" />
<TextBlock Text="{Binding DecPart}" Margin="0,0,0,3" FontSize="8"  />

С креплениями и преобразователями

<my:IntPartConverter x:Key="MyIntPartConverter" />
<my:DecPartConverter x:Key="MyDecPartConverter" />

<TextBlock Text="{Binding MyNumber, Converter={StaticResource MyIntPartConverter}}" FontSize="12" />
<TextBlock Text="{Binding MyNumber, Converter={StaticResource MyDecPartConverter}}" Margin="0,0,0,3" FontSize="8"  />

С#

public class IntPartConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return (int)value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

public class DecPartConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return (double)value - (int)value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
  • 2
    Если вы хотите использовать связывание, вы можете использовать конвертеры, чтобы вывести их влево и вправо от десятичной дроби.
  • 0
    на самом деле. я решил показывать только статические данные для этого примера, так как вопрос больше касается стилей из того, что я могу сказать.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню