我想当几个TextBlocks位于一行中时(即StackPanel中的水平方向),它们应该看起来好像是一个TextBlock。但我发现了以下内容:
第一行是显示“eeee”的TextBlock。第二个是包含4个TextBlocks的StackPanel,每个TextBlock包含“e”。从上图中可以看出,第二行比第一行略长。看起来TextBlocks有一些内部边距。但是,在我的情况下,我想阻止它。 所以,你知道怎么做吗?
答案 0 :(得分:1)
尝试将Padding
的{{1}}和Margin
设置为零。
TextBlock
由于您要使用多个文本块,因此您应该使用<TextBlock Padding="0" Margin="0" ... />
来执行此操作。
Style
如果这没有帮助,那么您可以开始使用负边距:
<StackPanel Orientation="Horizontal">
<Style TargetType="TextBlock">
<Setter Property="Padding" Value="0" />
<Setter Property="Margin" Value="0" />
</Style>
...
</StackPanel>
然而,这会在代码中引入脆弱性,因为文本之间的间距取决于字体大小和显示的文本。例如,如果将字体大小更改为13,则不会再出现5个小写字母“e”的问题。但是,将文本更改为大写“E”将导致相同的问题。
您可以尝试使用Margin="-1,0,0,0"
上的剪切属性甚至渲染效果,但这似乎只是为了让文本调整几个像素。请问您为什么试图让两个文本样本看起来一样?
<强>更新强>
我怀疑你是否能找到一种好方法让你的工作按照你想要的方式进行。您可以考虑使用TextBlock
或创建自定义控件。
Here是使用带有文字突出显示的RichTextBox
的一个很好的示例(虽然它是前景突出显示)。