我有一个非常简单的位置读数 - 它只是一种具有应用于它的样式的文本块。以这种风格,我只是将其设置为这样(有比这更多的属性,但我将它们带出了简洁):

    <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} (在七个位置上显示参数,左侧填充空间)。但是,即使在这种情况下,要使文本不跳跃,您也需要使用单音范围的字体,或者至少具有其空间字符宽度等于数字宽度的字体。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top