WPF StringFormat 格式化文本

StringFormat对特定数据格式的转换

WPF中,对数字/日期等的格式化,可参考此篇博客:https://www.cnblogs.com/zhengwen/archive/2010/06/19/1761036.html

StringFormat对语言项的格式化

1.单个动态数据绑定

例如:

“已使用此软件 365 天!”,WPF中可如下处理

添加资源项:

1 <system:String x:Key="LangSource1">已使用此软件 {0} 天!</system:String> 

StringFormat格式化:

1 <TextBlock Text="{Binding UsedDays,StringFormat={StaticResource LangSource1}}"/> 

文本:《365》

StringFormat格式化:

<TextBlock Text="{Binding UsedDays,StringFormat=《{0}》}"  Foreground="#018000"/>

 其它案例:

1 <TextBox Text="{Binding Value, StringFormat={}{0:0000.0}}" /> // 0123.4
2 <TextBox Text="{Binding Value, StringFormat={}{0:####.#}}" /> // 123.4

 

2.多个动态数据绑定

例如:“30/365”

1     <TextBlock>
2         <TextBlock.Text>
3             <MultiBinding StringFormat="{}{0}/{1}">
4                 <Binding Path="LearnedDays" FallbackValue="0" />
5                 <Binding Path="PlanningDays" FallbackValue="0" />
6             </MultiBinding>
7         </TextBlock.Text>
8     </TextBlock>

例如:“已经学习30天,剩余计划学习天数365”

添加资源项:

 1 <system:String x:Key="LangSource5">已经学习{0},剩余计划学习天数{1}</system:String> 

WPF中stringFormat处理:

1     <TextBlock>
2         <TextBlock.Text>
3             <MultiBinding StringFormat="{StaticResource LangSource5}">
4                 <Binding Path="LearnedDays" FallbackValue="0" />
5                 <Binding Path="PlanningDays" FallbackValue="0" />
6             </MultiBinding>
7         </TextBlock.Text>
8     </TextBlock>
1 <TextBox.Text>
2     <MultiBinding StringFormat="姓名:{0}&#x09;{1}">
3         <Binding Path="FristName" />
4         <Binding Path="LastName" />
5     </MultiBinding>
6 </TextBox.Text>

常见的特殊字符:

小于号(<) &lt;
大于号(>) &gt;
&符号(&) &amp;
引号(") &quot;
单引号(') &apos;
回车 &#x000D;
换行 &#x000A;
Tab &#x0009;
空格 &#x0020;

3. 数据格式转换与动态数据绑定的灵动结合

例如:“学生张三的期末平均成绩为93.20分”

添加资源项:

 1 <system:String x:Key="LangSource5">学生{0}的期末平均成绩为{1:N2}分</system:String>  

WPF中stringFormat处理:

1     <TextBlock>
2         <TextBlock.Text>
3             <MultiBinding StringFormat="{StaticResource LangSource5}">
4                 <Binding Path="Name"/>
5                 <Binding Path="Score"/>
6             </MultiBinding>
7         </TextBlock.Text>
8     </TextBlock>

 

posted @   唐宋元明清2188  阅读(4140)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
历史上的今天:
2016-09-27 DevExpress Carousel 设置水平滑动列表
点击右上角即可分享
微信分享提示