wpf ContentStringFormat 配置整理

ContentStringFormat 属性在 WPF 中用于格式化绑定到 Content 属性的数据。然而,需要注意的是,并非所有控件都直接支持 ContentStringFormat,特别是像 TextBlock 这样的控件,它使用 Text 属性的 StringFormat 而不是 ContentStringFormat。不过,对于 ContentControl 及其子类(如 LabelButton 等),你可以使用 ContentStringFormat 来格式化显示的内容。

以下是一些示例,展示了如何使用 ContentStringFormat(或对于 TextBlock 使用 StringFormat)来格式化不同类型的数据:

1. 货币格式

对于 doubledecimal 类型的货币值,你可以使用货币格式字符串 "C" 或 "C2"(表示两位小数)。

cs 复制代码
<!-- 使用 ContentStringFormat -->  
<Label Content="{Binding Price}" ContentStringFormat="C" />  
<Label Content="{Binding Price}" ContentStringFormat="C2" />  
  
<!-- 对于 TextBlock,使用 StringFormat -->  
<TextBlock Text="{Binding Price, StringFormat=C}" />  
<TextBlock Text="{Binding Price, StringFormat=C2}" />

2. 数值格式

对于整数或浮点数,你可以使用不同的数值格式字符串。

cs 复制代码
<!-- 整数 -->  
<Label Content="{Binding IntegerValue}" ContentStringFormat="N0" />  
  
<!-- 浮点数,保留两位小数 -->  
<Label Content="{Binding FloatValue}" ContentStringFormat="N2" />  
  
<!-- 百分比 -->  
<Label Content="{Binding Percentage}" ContentStringFormat="P" />  
<Label Content="{Binding Percentage}" ContentStringFormat="P2" />  
  
<!-- 对于 TextBlock -->  
<TextBlock Text="{Binding IntegerValue, StringFormat=N0}" />  
<TextBlock Text="{Binding FloatValue, StringFormat=N2}" />  
<TextBlock Text="{Binding Percentage, StringFormat=P2}" />

3. 日期和时间格式

对于 DateTime 类型的值,你可以使用标准的或自定义的日期和时间格式字符串。

cs 复制代码
<!-- 短日期格式 -->  
<Label Content="{Binding Date}" ContentStringFormat="d" />  
  
<!-- 长日期格式 -->  
<Label Content="{Binding Date}" ContentStringFormat="D" />  
  
<!-- 自定义日期和时间格式 -->  
<Label Content="{Binding DateTimeValue}" ContentStringFormat="yyyy-MM-dd HH:mm:ss" />  
  
<!-- 对于 TextBlock -->  
<TextBlock Text="{Binding Date, StringFormat=d}" />  
<TextBlock Text="{Binding DateTimeValue, StringFormat=yyyy-MM-dd HH:mm:ss}" />

4. 字符串连接

虽然 ContentStringFormatStringFormat 主要用于格式化数值和日期时间,但你也可以通过绑定多个属性并使用字符串格式化来连接它们。不过,这通常需要在后台代码中或使用 MultiBindingStringFormatConverter(或类似的转换器)来实现。不过,对于简单的场景,你可以只绑定一个属性并在 XAML 中使用字符串字面量。

注意:

  • 当使用 ContentStringFormatStringFormat 时,请确保绑定的属性类型与你想要的格式字符串兼容。
  • 对于复杂的格式化需求,可能需要编写自定义的 IValueConverter 并在绑定中使用它。
  • 记住,ContentStringFormat 适用于 ContentControl 及其子类,而 StringFormat 适用于 TextBlockText 属性绑定。
相关推荐
dalong108 小时前
WPF:Modbus 状态监控
wpf·modbus
He BianGu1 天前
【WPF-VisionMaster】机器视觉通用平台V5.0版本发行说明
opencv·c#·wpf·halcon·机器视觉·visionmaster
fogota4 天前
Emoji与Segoe MDL2 Assets的比较
c#·wpf
fogota4 天前
C# WPF 按钮加载字体图标 / 动物头像
c#·.net·wpf
fogota4 天前
C# WPF 按钮加载系统图标 / 动物头像
c#·.net·wpf
军训猫猫头4 天前
C# 封装 MySQL 自动写入与查询工具类(基于 MySqlConnector)
mysql·c#·.net·wpf
gis开发之家5 天前
Spring Boot 4 定时任务与异步线程池:从 @Scheduled 到高并发任务编排(生产级实战)
java·spring boot·后端·wpf·spring boot4
clz13145216 天前
如何设计一个优雅可靠的金融级联机接口
wpf
闲云自留地7 天前
云平台存储管理员:Cinder 创建挂载卷 + Swift 分布式存储原理
分布式·wpf·swift
敲代码的嘎仔8 天前
从集群锁失效到异步领券:我用分布式锁 + Redisson + MQ 把领券接口 RT 从 200ms 压到 15ms
java·数据库·redis·分布式·缓存·ai·wpf