首页 > 解决方案 > 获取小数点后的数字

问题描述

我正在将一个SqlMoney类型绑定到TextBoxWPF 中的 a ,并且我试图将小数点后的数字放入上标中。这是我到目前为止所得到的:

<TextBlock>
    <Run FontSize="50">1000</Run>
    <Run BaselineAlignment="TextTop" TextDecorations="Underline" FontSize="26">00</Run>
</TextBlock>

有没有一种简单的方法在 WPF 中使用类似的东西,StringFormat或者我需要在代码中的其他地方拆分它然后绑定?

编辑:好的,我可能解释得不好。这是现在代码中的实际实现:

模型属性
public SqlMoney Price { get; }

看法
<TextBlock Text="{Binding Mode=OneWay, Path=Price}" />

效果: 效果 - 之前和之后

有没有办法让视图处理拆分或者我需要更改模型或虚拟机中的实现?

标签: c#wpf

解决方案


当您使用绑定时,您可以使用StringFormat它来做您需要的事情。在您的示例中,没有绑定,因此StringFormat.

这是StringFormat绑定时可以使用的:

StringFormat={}{0:00.00}

绑定示例StringFormat(假设Superscript是你的一个属性DataContext):

<TextBlock>
    <Run FontSize="50">1000</Run>
    <Run BaselineAlignment="TextTop" TextDecorations="Underline" FontSize="26" Text="{Binding Superscript, StringFormat={}{0:00.00}}"/>
</TextBlock>

如果您还没有DataContext设置并且想要一个独立的示例,您可以创建一个Resource并绑定到它:

<TextBlock>
    <TextBlock.Resources>
        <sys:Double x:Key="Superscript">0</sys:Double>
    </TextBlock.Resources>
    <Run FontSize="50">1000</Run>
    <Run BaselineAlignment="TextTop" TextDecorations="Underline" FontSize="26" Text="{Binding Source={StaticResource Superscript}, StringFormat={}{0:00.00}, Mode=OneWay}"/>
</TextBlock>

在此示例中,我必须使用OneWay绑定,因为我正在绑定到静态资源。

结果:

在此处输入图像描述


推荐阅读