WPF文本绑定显示格式StringFormat设置-数值类型处理

devtools/2024/11/15 8:40:59/

绑定显示格式设置

在Textblock等文本控件中,我们经常要绑定一些数据类型,但是我们希望显示的时候能够按照我们想要的格式去显示,比如增加文本前缀,后面加单位,显示百分号等等,这种就需要对绑定格式进行处理

<TextBlock HorizontalAlignment="Left" Margin="119,42,0,0" TextWrapping="Wrap" Text="{Binding Value}" VerticalAlignment="Top"/>

在这里插入图片描述

本文主要介绍一些数值类型的格式处理

StringFormat格式

StringFormat=前文字{0:X}后文字

说明:

X为对应的功能的代码,如写C为货币格式,前面加$

如果没有前文字,则前面换成{} ,格式:{}{0:X}后文字

如下对不同功能进行列举示例

整数固定位数

整数D,仅支持整形类型,double等无效,文本不显示

固定位数:{}{0:Dn},n为位数,小于原来位数,则不起作用,n大于原始数据位数,则用0补充

<TextBox Text="{Binding Count, StringFormat={}{0:D6}}" /> 

示例:

 public int Number { get; set; }Number = 15;

显示效果:

<TextBlock HorizontalAlignment="Left" Margin="44,35,0,0" TextWrapping="Wrap" Text="{Binding Number}" VerticalAlignment="Top"/>
<TextBlock HorizontalAlignment="Left" Margin="44,200,0,0" TextWrapping="Wrap" Text="{Binding Number,StringFormat={}{0:D6}}" VerticalAlignment="Top"/>

在这里插入图片描述

小数

· 指定小数点后的位数{}{0:F4},4为小数点位数

<TextBox Text="{Binding Total, StringFormat={}{0:F4}}" /> 

· 用分号隔开的整数部分每三位加一个分号,并指定小数点后的位数

<TextBox Text="{Binding Total, StringFormat={}{0:N3}}" /> 

示例

数据:

    public double Value { get; set; }Value = 231341145.312454858;

效果:

<TextBlock HorizontalAlignment="Left" Margin="119,42,0,0" TextWrapping="Wrap" Text="{Binding Value}" VerticalAlignment="Top"/>
<TextBlock HorizontalAlignment="Left" Margin="119,81,0,0" TextWrapping="Wrap" Text="{Binding Value,StringFormat={}{0:F6}}" VerticalAlignment="Top"/>
<TextBlock HorizontalAlignment="Left" Margin="119,117,0,0" TextWrapping="Wrap" Text="{Binding Value, StringFormat={}{0:N6}}" VerticalAlignment="Top"/>

在这里插入图片描述

货币格式

· 货币格式{}{0:C} ,默认设置为2位小数

<TextBlock Text="{Binding Price, StringFormat={}{0:C}}" /> 

· 货币格式,小数点设置{}{0:Cn},N为小数点位数

如下,设置小数点1位

<TextBox Text="{Binding Price, StringFormat={}{0:C1}}" /> // $123.5

示例

绑定数据:

   public double Pirce { get; set; }Pirce = 15.223;  //decimal或者其他类型也可以

显示效果:

 <TextBlock HorizontalAlignment="Left" Margin="44,114,0,0" TextWrapping="Wrap" Text="{Binding Pirce,StringFormat={}{0:C}}" VerticalAlignment="Top"/><TextBlock HorizontalAlignment="Left" Margin="44,159,0,0" TextWrapping="Wrap" Text="{Binding Pirce,StringFormat={}{0:C1}}" VerticalAlignment="Top"/>

在这里插入图片描述

占位符

需要同时指定整数和小数部分位数,格式如下,有两种写法,效果不同

使用0为占位符,整数部分不足,会用0自动填充;使用#为占位符,整数部分不会自动填充

<TextBox Text="{Binding Value, StringFormat={}{0:0000.000}}" /> 
<TextBox Text="{Binding Value, StringFormat={}{0:####.###}}" /> 

测试效果:

在这里插入图片描述

百分比

显示百分比P,格式:{}{0:Pn},n为小数点位数

注意:百分比会需要在数据中输入实际数值大小,如输入1,就是100%,0.12→12%,如果输入12,则是1200%

<TextBox Text="{Binding Persent, StringFormat={}{0:P1}}" /> 

示例:

    public double Value { get; set; }Value =  1.122;

效果:

<TextBlock HorizontalAlignment="Left" Margin="119,42,0,0" TextWrapping="Wrap" Text="{Binding Value}" VerticalAlignment="Top"/>
<TextBlock HorizontalAlignment="Left" Margin="119,81,0,0" TextWrapping="Wrap" Text="{Binding Value,StringFormat={}{0:P2}}" VerticalAlignment="Top"/>

在这里插入图片描述

前文字

格式:xxxx{0:X}前面xxxx为自定义的文字内容,后面跟上面用法一样,如果后面数据内容不处理,则为xxxx{0},{0}代表数据本身

<TextBox Text="{Binding Price, StringFormat=xxxx{0:P}}" /> 
示例
<TextBlock Text="{Binding Value,StringFormat=百分比{0:P2}}" />

效果:

在这里插入图片描述

后文字

格式:{}{0}xxxx,在后面添加文字,其他的规则一样

<TextBox Text="{Binding Price, StringFormat={}{0}xxxx}" /> 

效果:
在这里插入图片描述

前后都加

格式:xxxx{0}xxxx

 <TextBlock  Text="{Binding Value,StringFormat=长度:{0}米}" VerticalAlignment="Top"/>

在这里插入图片描述


http://www.ppmy.cn/devtools/56072.html

相关文章

移动端 UI 风格,书写华丽篇章

移动端 UI 风格&#xff0c;书写华丽篇章

别让黑客轻易入侵:端口敲门,让你的SSH固若金汤!

在网络安全领域&#xff0c;SSH&#xff08;Secure Shell&#xff09;是一种常用的加密协议&#xff0c;用于在不安全的网络上进行安全的远程登录和其他安全网络服务。然而&#xff0c;SSH服务默认监听的22端口常常成为攻击者的目标&#xff0c;他们会使用各种方法尝试破解SSH密…

使用Python进行Socket接口测试

大家好&#xff0c;在现代软件开发中&#xff0c;网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯&#xff0c;都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中&#xff0c;Socket&#xff08;套接字&#xff09;技术扮演了重要角色…

Python基础-连接Mysql数据库

一、pymysql pymsql 是 Python 中操作 MySQL 的原生模块&#xff0c;其使用方法和 MySQL 的SQL语句几乎相同 1、下载安装 pip3 install pymysql2、执行SQL 执行 SQL 语句的基本语法&#xff1a; 需要注意的是&#xff1a;创建链接后&#xff0c;都由游标来进行与数据库的操…

C语言经典例题-7

1.计算三角形的周长和面积 题目描述&#xff1a; 根据给出的三角形3条边a, b, c&#xff08;0 < a, b, c < 100,000&#xff09;&#xff0c;计算三角形的周长和面积。 输入描述: 一行&#xff0c;三角形3条边&#xff08;能构成三角形&#xff09;&#xff0c;中间用…

力扣随机一题 位运算/滑动窗口/数组

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 3191.使二进制数组全部等于1的最少操作次数I【中等】 题目&#xff1a; 给…

【python入门】数组、元组、字典

文章目录 数组&#xff08;List&#xff09;元组&#xff08;Tuple&#xff09;字典&#xff08;Dictionary&#xff09; Python 是一种非常灵活的编程语言&#xff0c;它提供了多种数据结构来存储和操作数据。下面是 Python 中数组、元组和字典的详细说明&#xff0c;以及一些…

java实现分类下拉树,点击时对应搜索---后端逻辑

一直想做分类下拉&#xff0c;然后选择后搜索的页面&#xff0c;正好做项目有了明确的需求&#xff0c;查找后发现el-tree的构件可满足需求&#xff0c;数据要求为&#xff1a;{ id:1, label:name, childer:[……] }形式的&#xff0c;于是乎&#xff0c;开搞&#xff01; 一…