XAML小数位的特殊样式

时间:2015-01-12 13:51:19

标签: c# wpf xaml

我有这个数字1234.456它有3个小数位,这对我的用户来说非常有限,他们中的一些人将nunber解释为数千但仍然需要它。

我该如何设计这些数字?

像这张图片一样:

enter image description here

注意:可能会以其他颜色显示小数位。

任何帮助都会非常苛刻。

编辑1:我想要的是要应用的Style(xaml)模板,编辑模式必须显示正常的数字以允许用户修改它。现在我完全迷失了,我是一个初学者。

注意:我使用MVVM作为主要架构,我的XAML模板需要绑定

1 个答案:

答案 0 :(得分:2)

你必须在页面上放两个元素,一个用于整数部分,一个用于小数部分。然后按照您的预期设计它们。像这样:

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

使用Bindings:

<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"  />

C#

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();
    }
}