我有以下XAML:
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="10" FontFamily="Arial" Foreground="#414141">
<Run Text="{Binding LoadsCount}" />
<Run Text="+" />
<Run Text="{Binding BrokerLoadsCount}" />
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
我得到这样的显示:12 + 11
不知何故,它在每个之间插入额外的空间Run
如何让它显示12+11?
Kev*_*lia 126
运行标记之间的空格会导致空格,这是最简单的修复.
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="10"
FontFamily="Arial"
Foreground="#414141">
<Run Text="{Binding LoadsCount}" /><Run Text="+" /><Run Text="{Binding BrokerLoadsCount}" />
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
因为<TextBlock>和之间的任何内容</TextBlock>都是以TextBlock的text属性为目标,因此运行之间的间隔中的空格会导致您看到的效果.你也可以缩短它.
<Run Text="{Binding LoadsCount}" />+<Run Text="{Binding BrokerLoadsCount}" />
Run Code Online (Sandbox Code Playgroud)
这篇MSDN文章提供了有关xaml如何处理空白的所有细节
http://msdn.microsoft.com/en-us/library/ms788746.aspx
如果你很好奇为什么休息和大量标签转换成一个空格
所有空白字符(空格,换行符,制表符)都转换为空格.
删除所有连续空格并替换为一个空格
hel*_*lva 22
另一种选择是在Run标签之间注释空格,保持代码可读并删除额外空间.
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="10" FontFamily="Arial" Foreground="#414141">
<Run Text="{Binding LoadsCount}" /><!--
--><Run Text="+" /><!--
--><Run Text="{Binding BrokerLoadsCount}" />
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
Gle*_*den 18
Kevin的一个很好的解决方案的一个问题XAML是当你应用一些XAML/XML自动重新格式化功能时,标签的单行格式化被撤消,例如"ctrl-K + ctrl-D".我找到的一个解决方法是格式化Run标记,如下所示:
<TextBlock>
<Run FontStyle="Italic"
Text="aaa" /><Run
Text="bbb" />
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
虽然在这样的行之间拆分标签有点尴尬,但是如果您Visual Studio为XAML文本编辑器选择"保留属性之间的新行和空格"选项,则自动重新格式化不会更改此格式:

| 归档时间: |
|
| 查看次数: |
15767 次 |
| 最近记录: |