WPF:减少/删除TextBlock中文本上方的空白区域

时间:2016-02-27 10:20:16

标签: wpf xaml

我有一个TextBlock,我想在其中显示不同字体大小的2行文字,但我不希望每行上面都浪费所有空间。

我的XAML如下......

<TextBlock Grid.Column="0" Grid.Row="0" FontWeight="Bold" Foreground="Red" TextAlignment="Center">

    <Run Text="A" FontSize="144" FontWeight="Bold" />

    <LineBreak />

    <Run Text="Service" FontSize="18" />

</TextBlock>

我最终得到的是......

An image of what I actually get from my XAML

而我想要的是......

An image of what I am trying to acheive

注意&#34; A&#34;以及&#34; A&#34;之间的所有浪费空间。和#34;服务&#34; line(我在第二张图片中删除了它 - 通过操作图像)。

我已经尝试了LineHeight,LineStackingStrategy,Margin和Padding属性值的各种组合,不仅对TextBlock而且对Paragraph(使用Style),但似乎没有任何东西可以删除空格。

有人可以建议我应该如何实现这一点;我相信一定是可能的。

感谢。

2 个答案:

答案 0 :(得分:2)

您可以将LineStackingStrategy属性设置为BlockLineHeight并指定LineHeight以获得所需内容。

<TextBlock Grid.Column="0" Grid.Row="0" FontWeight="Bold" Foreground="Red" TextAlignment="Center"
           LineHeight="15.25"
           LineStackingStrategy="BlockLineHeight">
    <Run Text="A" FontSize="144" FontWeight="Bold" />
    <LineBreak />
    <Run Text="Service" FontSize="18" />
</TextBlock>

Result

答案 1 :(得分:0)

我认为这不会完全符合您的搜索方式,但您可以尝试。

根据您的喜好将TextBlock放入DockPanelStackPanel,然后将ViewBox中的其中一个放入ViewBox

TextBlock尝试相对于wpf窗口的分辨率最大化它所包含的内容。

StackPanel放入ViewBox的原因是因为find ./ -name Debug | xargs rm -rf git add --update git commit git push 不接受多个孩子。