【发布时间】:2011-01-04 22:48:55
【问题描述】:
我有一个非常简单的位置读数——它只是一个应用了 Style 的 TextBlock。在那个 Style 中,我只是这样设置(属性比这个还多,但为了简洁起见,我把它们取出来了):
<Style x:Key="NumberStyle" TargetType="{x:Type TextBlock}">
<Setter Property="TextAlignment" Value="Center" />
</Style>
现在,我有一个使用这种样式的显示器,它将显示一个从 0.0 到 30000.0 的数字。问题是,由于我将文本居中,所以数字(如果变化很快)会到处乱跳,这有点令人不安。我想格式化我的字符串,这样它就不会这样做了。
我在 XAML 中尝试了这个 ConverterParameter:
ConverterParameter='\{0:00000.0\}'
虽然它正确地进行了填充,但我会得到像 00032.5 这样的数字。然后我用# 替换了0,但最终的行为就像{0:0.0}。我查看了MSDN docs 并没有看到任何其他有用的信息。
我唯一能想到的是,我必须编写一个新的 IValueConverter 来执行此操作。换句话说,在 Convert() 方法中,我必须将 parameter 解析为我自己的特殊字符。然后当我检测到这一点时,用空格替换缺失的数字。
但是,我真正想在这里学习的是,这可以通过在格式字符串中简单地使用我不知道的不同字符来完成吗?
【问题讨论】:
标签: wpf string ivalueconverter formatter