在WPF中填充数字显示
-
15-10-2019 - |
题
我有一个非常简单的位置读数 - 它只是一种具有应用于它的样式的文本块。以这种风格,我只是将其设置为这样(有比这更多的属性,但我将它们带出了简洁):
<Style x:Key="NumberStyle" TargetType="{x:Type TextBlock}">
<Setter Property="TextAlignment" Value="Center" />
</Style>
现在,我有一个使用此样式的显示屏,它将显示一个0.0至30000.0的数字。问题在于,由于我要居中文本,因此数字(如果迅速变化)在整个地方跳跃,这有点令人不安。我想格式化我的字符串,以免这样做。
我在XAML中尝试了此转换参数:
ConverterParameter='\{0:00000.0\}'
虽然它正确执行填充,但我将获得00032.5之类的数字。然后我替换了 0
和 #
, ,但最终表现得像 {0:0.0}
. 。我看着 MSDN文档 而且没有看到其他帮助的东西。
我唯一能想到的是,我必须写一个新的ivalueconverter来做到这一点。换句话说,在convert()方法中,我必须接受 parameter
并为我自己的特殊角色解析。然后,当我检测到这一点时,将缺失的数字替换为空格。
但是,我真正想在这里学习的是,可以通过简单地使用我不知道的格式字符串中的其他字符来完成吗?
解决方案
尝试 {}{0,10:#,0}
对于10个字符的字段。
但是请注意,如果字体不是固定宽度,这将产生奇怪的结果。我尝试了 Kaxaml, ,它起作用,但是文本与比例字体不符。
其他提示
我认为你需要类似的东西 {0,7}
(在七个位置上显示参数,左侧填充空间)。但是,即使在这种情况下,要使文本不跳跃,您也需要使用单音范围的字体,或者至少具有其空间字符宽度等于数字宽度的字体。
不隶属于 StackOverflow