.net WPF XAML字符串格式。逃逸%

.net WPF XAML字符串格式。逃逸%,.net,wpf,xaml,.net,Wpf,Xaml,我有一个字段,它包含一个percantage值作为小数 文本块已绑定到此字段,我想用%符号显示它 例如: 如果myfield=5.0,则文本应显示为“5.00%” 这是我的装订: Text="{Binding Path=myfield, StringFormat=0.00## \%}" 当前显示“500.00%” “\”似乎没有转义“%” 如何在XAML StringFormat中转义“%”?您可以尝试使用引号: Text="{Binding Path=myfield, StringForma

我有一个字段,它包含一个percantage值作为小数

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

例如: 如果myfield=5.0,则文本应显示为“5.00%”

这是我的装订:

Text="{Binding Path=myfield, StringFormat=0.00## \%}"
当前显示“500.00%”

“\”似乎没有转义“%”


如何在XAML StringFormat中转义“%”?

您可以尝试使用引号:

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

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

 Text="{Binding Path=myfield, StringFormat={}{0:0.00##} %}"
这表示对于参数索引0,将其格式化为“0.00##”,然后附加“%”


虽然这给出了所需的结果,但没有解释如何在参数0的字符串格式中转义%

看起来我们需要加倍斜杠,我认为
\
本身需要转义,以帮助XAML编译器理解它是一个单独的
\
,然后再将其与
%
组合,以完美地转义
%
,这将被
StringFormat
理解为文本字符串
%
(并非由XAML编译器提供):

所以从技术上讲,我们这里有两个解释器,一个是XAML编译器,另一个是
StringFormat
引擎。请注意
\
还用于转义XAML中的一些特殊字符,例如
{
}

通过显式指定参数索引,可以执行以下操作:

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

恐怕这甚至无法编译。我唯一能想到的是,在反斜杠和
%
之间还有另一个零宽度字符(尽管不太可能出现)。
Text="{Binding Path=myfield, StringFormat=\{0:0.00## \\%\}}"