繁体   English   中英

如何在 XAML 中格式化此字符串?

[英]How can I format this string in XAML?

我正在尝试将使用 Winforms 中的部件的程序转换为 WPF。 我在这部分遇到了一些麻烦。 该程序这样做:

this.textBox.Properties.DisplayFormat.FormatString = "#,#;-#,#;-";

我不太确定这是在做什么,我正在努力将其转换为 XAML 用于 WPF。 我知道我必须在这里设置它:

Text="{Binding x, Mode=OneWay, StringFormat={}{...}}"/>

但我不确定什么是等价的,因为#,#;-#,#;-不起作用。 谢谢你的帮助: :)

根据WinForms Format Specifiers ,您的原始格式字符串说:

  1. 您希望正十进制数看起来像整数 #,#(例如:1234.5 看起来像 1,234)
  2. 您希望负十进制数看起来像整数 -#,#(例如:-1234.5 看起来像 -1,234)
  3. 您希望零看起来像 - (示例:-)

对于 WPF,您可以使用相同的字符串格式说明符,但您需要在格式前加上{} 这是必需的,否则 WPF 将与其他标记扩展混淆。

这是一个例子:

主.xaml

<StackPanel>
    <TextBlock Text="{Binding Value1, StringFormat={}{0:#,#;-#,#;-}}"/>
    <TextBlock Text="{Binding Value2, StringFormat={}{0:#,#;-#,#;-}}"/>
    <TextBlock Text="{Binding Value3, StringFormat={}{0:#,#;-#,#;-}}"/>
</StackPanel>

Main.xaml.cs

public double Value1 { get; set; }
public double Value2 { get; set; }
public double Value3 { get; set; }
public MainWindow()
{
    InitializeComponent();
    Value1 = 1234567.890f;
    Value2 = -987654.321f;
    Value3 = 0;
    this.DataContext = this;
}

这是最终的 output:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM