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


    绑定显示格式设置

    在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"/>
    

    在这里插入图片描述

  • 相关阅读:
    6 种创新的人工智能在牙科领域的应用
    初识 - Spring
    Git版本控制
    算法通关村第17关【白银】| 贪心高频问题
    计算机编码与解码&编码表
    Android系统10 RK3399 init进程启动(二十八) SeAndroid政策兼容性
    【Overload游戏引擎分析】编辑器对象鼠标拾取原理
    6. 毕业设计温湿度监控系统(ESP8266 + DHT11 +OLED 实时上传温湿度数据给公网服务器并在OLED显示屏上显示实时温湿度)
    通用收藏管理器Koillection
    CentOS 安装HTTP代理服务器 Squid
  • 原文地址:https://blog.csdn.net/qq_39427511/article/details/139862933