2015-10-19 182 views
1

我有一个字段,其中包含一个十进制的百分比值。WPF XAML StringFormat。转义%

文本块绑定到此字段,我想用%符号显示它。

例如: 如果MyField的= 5.0然后文本应当被显示为 “5.00%”

这是我的结合:

Text="{Binding Path=myfield, StringFormat=0.00## \%}" 

目前显示 “500.00%”

的'\'似乎不是在逃避'%'。

如何在XAML StringFormat中转义'%'?

+0

我能想到的唯一的事情是,有反斜线和'%'之间的另一个零宽度字符(但不太可能出现)。 – ChrisF

回答

1

看来我们需要斜线一倍内逃脱%,我认为\本身需要进行转义帮助XAML编译器明白,这是一个\之前它被用%相结合,做出一个%完美越狱将由StringFormat(不XAML编译器)被理解为文字字符串%

Text="{Binding Path=myfield, StringFormat=0.00## \\%}" 

因此技术上我们在这里有两个解释器,一个由XAML编译器和一个由StringFormat引擎组成。请注意,\也用于转义XAML中的某些特殊字符,例如{}

通过显式指定的参数指标,你可以这样做:

Text="{Binding Path=myfield, StringFormat=\{0:0.00## \\%\}}" 
0

您可以用引号尝试它,而不是:

Text="{Binding Path=myfield, StringFormat=0.00## '%'}" 
+1

这不会甚至编译我害怕。 – apc

0

找到了答案,以我的问题,但它不完全地回答我的问题:

Text="{Binding Path=myfield, StringFormat={}{0:0.00##} %}" 

这表示它的参数指标0格式“0.00 ##”然后附加“%”。

虽然这会给出理想的结果它没有解释如何为参数字符串格式0