c# - 获取小数点后的数字
问题描述
我正在将一个SqlMoney
类型绑定到TextBox
WPF 中的 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}" />
效果: 效果 - 之前和之后
有没有办法让视图处理拆分或者我需要更改模型或虚拟机中的实现?
解决方案
当您使用绑定时,您可以使用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
绑定,因为我正在绑定到静态资源。
结果: