我有一个非常简单的位置读数——它只是一个应用了 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 文档,没有看到任何其他有用的信息。
我唯一能想到的是我必须编写一个新的 IValueConverter 来做到这一点。换句话说,在 Convert() 方法中,我必须将其parameter
解析为我自己的特殊字符。然后当我检测到这一点时,用空格替换缺失的数字。
但是,我真正想在这里学习的是,这可以通过简单地在格式字符串中使用我不知道的不同字符来完成吗?