TextBlock中每个字母有多种颜色,没有间距

时间:2013-12-10 14:08:07

标签: xaml winrt-xaml

我想改变单词中每个字母的颜色。但是当我使用

<TextBlock>
   <Run Foreground="Red" Text="F"/>
   <Run Foreground="Yellow" Text="o"/>
   <Run Foreground="Lime" Text="o"/>
   <Run Foreground="Magenta" Text="b"/>
   <Run Foreground="Blue" Text="a"/>
   <Run Foreground="Red" Text="r"/>
<TextBlock>

<TextBlock>
   <Span Foreground="Red">F</Span>
   <Span Foreground="Yellow">o</Span>
   <Span Foreground="Lime">o</Span>
   <Span Foreground="Magenta">b</Span>
   <Span Foreground="Blue">a</Span>
   <Span Foreground="Red">r</Span>
</TextBlock>

它包含运行应用程序时字母之间的间距,而不是Visual Studio 2012的编辑器中的间距。我尝试设置fontStretch但在这种情况下似乎没用。有人能告诉我如何在不获取间距的情况下单独为每个字母着色吗? 提前谢谢。

1 个答案:

答案 0 :(得分:4)

由于SPAN块上的样式,它正在做空间。它是display:inline-block。

如果要删除它,可以执行以下操作:

<TextBlock>
   <Span Foreground="Red">F</Span
   ><Span Foreground="Yellow">o</Span
   ><Span Foreground="Lime">o</Span
   ><Span Foreground="Magenta">b</Span
   ><Span Foreground="Blue">a</Span
   ><Span Foreground="Red">r</Span>
</TextBlock>

这只是一个小技巧; - )

希望这有帮助!

编辑:我认为你也可以做一个负余量:)

EDIT2:拜托,当你做错事时不要编辑我的代码,谢谢! (&gt;&lt; span是技巧)