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

标签 .net wpf xaml

我有一个包含小数百分比值的字段。

文本 block 绑定(bind)到该字段,我想用 % 符号显示它。

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

这是我的绑定(bind):

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

当前显示“500.00 %”

'\' 似乎没有转义 '%'。

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

最佳答案

看起来我们需要加倍斜杠,我认为 \ 本身需要转义以帮助 XAML 编译器在合并之前理解它是一个单一的 \使用 %% 进行完美转义,% 将被 StringFormat 理解为文字字符串 %(不是通过 XAML 编译器):

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

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

通过显式指定参数索引,您可以这样做:

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

关于.net - WPF XAML 字符串格式。逃脱 %,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33209400/

相关文章:

WPF GetIsInDesignMode 从转换器内部

c# - 使用 MVVM 在 WPF DataGrid 中自定义排序

c# - 图像未绘制在正确的位置

.net - .net core 2.0 中的持久身份验证 cookie

c# - 为什么 WinForms 应用程序默认是 STAThread?

.net - 是否可以在 Silverlight/WPF 中选择性地为包装 TextBlock 着色

c# - Windows 窗体到 WPF MVVM

c# - 依赖属性 null

c# - 构建后消失的用户控件

silverlight - Silverlight 中 Canvas 内的动态剪切宽度