加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 18:36:21 所属栏目:百科 来源:网络整理
导读:我有一个 WPF应用程序.我有一些标签和一些数据网格绑定到一些公共属性.其中一些属性是数值. 在datagrids中,我一直在使用下面的行来确保这些值只显示两个小数位,这是有效的.但是,当我使用下面相同的行作为我的标签时,它似乎对显示没有影响,因为数字显示为大约
我有一个 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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读