c# – 使用StringFormat格式化WPF标签

前端之家收集整理的这篇文章主要介绍了c# – 使用StringFormat格式化WPF标签前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 WPF应用程序.我有一些标签和一些数据网格绑定到一些公共属性.其中一些属性是数值.

在datagrids中,我一直在使用下面的行来确保这些值只显示两个小数位,这是有效的.但是,当我使用下面相同的行作为我的标签时,它似乎对显示没有影响,因为数字显示为大约9位小数.我不明白为什么它适用于datagrid但不适用于标签

StringFormat={}{0:0.##}



<Label Grid.Row="3" Grid.Column="1"
       Content="{Binding Obs.Tstat,StringFormat={}{0:0.#}}" 
       HorizontalAlignment="Center" Foreground="{StaticResource brushLinFont}" 
       FontSize="13" FontWeight="Bold"/>

更新的代码

<Label Grid.Row="3" Grid.Column="1"
        Content="{Binding Obs.Tstat}" ContentStringFormat="{}{0:0.#}}" 
        HorizontalAlignment="Center" Foreground="{StaticResource brushLinFont}" 
        FontSize="13" FontWeight="Bold"/>

解决方法

对于标签,您需要使用 ContentStringFormat
<Label Content="{Binding Obs.Tstat}" ContentStringFormat="{}{0:0.##}"/>

原因:

Label的Content属性是object类型,StringFormat仅在绑定属性为String类型时使用.

如果您使用TextBlock的Text属性尝试代码,它将适用于StringFormat,因为Text属性的类型为string.

猜你在找的C#相关文章