下面是XAML:
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="10" FontFamily="Arial" Foreground="#414141">
<Run Text="{Binding LoadsCount}" />
<Run Text="+" />
<Run Text="{Binding BrokerLoadsCount}" />
</TextBlock>
字符串
我得到这样的显示:不知何故,它在每个Run
之间插入了额外的空间,我怎么让它显示12+11
?
7条答案
按热度按时间5anewei61#
run标签之间的空格导致空格,这是最简单的修复方法。
字符串
因为
<TextBlock>
和</TextBlock>
之间的任何东西都是针对TextBlock的text属性的,所以运行之间的空格会导致你看到的效果。你也可以把它缩短为这样。型
这篇MSDN文章给出了xaml如何处理空白的所有细节
http://msdn.microsoft.com/en-us/library/ms788746.aspx
如果你好奇为什么一个空格和大量的制表符转换成一个空格,
所有空白字符(空格、换行符、制表符)都转换为空格。
所有连续的空格将被删除并替换为一个空格
a64a0gku2#
另一种选择是注解Run标记之间的空格,保持代码可读并删除多余的空格。
字符串
wvyml7n53#
Kevin的好解决方案的一个问题是,当你应用一些XAML/XML自动重新格式化函数时,
XAML
标签的单行格式被撤销,例如“ctrl-K + ctrl-D”。我发现的一个解决方案是如下格式化Run
标签:字符串
虽然像这样将标记跨行拆分有点尴尬,但如果您为XAML文本编辑器选择
Visual Studio
选项“保留属性之间的新行和空格”,则自动重新格式化不会更改此格式:x1c 0d1x的数据
nfzehxib4#
我已经写了一个附加属性来'绕过'这种行为。
字符串
整个源代码和解释都可以在here中找到。通过使用此附加属性,您可以按照自己的方式保持XAML格式,但不会在呈现的XAML中获得这些空格。
xesrikrc5#
我将Pieter的附加属性移植到WPF(我认为这是UWP)。
范例:
字符串
的数据
型
pkmbmrz76#
我的解决方案是使默认字体大小几乎不可见(
FontSize="1"
),然后在每<Run
处将字体大小设置为所需的大小:字符串
你最好还是在Code Behind中做,我试过以前的解决方案,但在某些情况下,VS只是格式化了小心缩进的代码。
des4xlb07#
另一个看起来更干净的解决方案是在
<TextBlock>
中使用<TextBlock.Inlines>
标签:字符串