我如何分配垂直中心对齐到文本块内的文本?我发现TextAlignment属性,但它是水平文本对齐。我怎么做垂直文本对齐?
当前回答
我发现修改文本框的样式(即:controltemplate),然后修改part_contentthost垂直对齐到中心将做的技巧
其他回答
虽然Orion Edwards Answer适用于任何情况,但每次想要这样做时,添加边界和设置边界的属性可能是一件痛苦的事情。另一个快速的方法是设置文本块的填充:
<TextBlock Height="22" Padding="3" />
我发现修改文本框的样式(即:controltemplate),然后修改part_contentthost垂直对齐到中心将做的技巧
一个文本块本身不能做垂直对齐
最好的方法,这样做,我发现是把文本块内的边界,所以边界为您对齐。
<Border BorderBrush="{x:Null}" Height="50">
<TextBlock TextWrapping="Wrap" Text="Some Text" VerticalAlignment="Center"/>
</Border>
注意:这在功能上等同于使用网格,它只是取决于你想让控件如何与你的布局的其余部分相适应,以确定哪个更适合
只是为了好玩,试试这个XAML吧。它不是完美的,因为它不是一个“对齐”,但它允许你调整一个段落中的文本对齐。
<TextBlock>
<TextBlock BaselineOffset="30">One</TextBlock>
<TextBlock BaselineOffset="20">Two</TextBlock>
<Run>Three</Run>
<Run BaselineAlignment="Subscript">Four</Run>
</TextBlock>
TextBlock不支持其内容的垂直对齐。如果你必须使用TextBlock,那么你必须对齐它与它的父。
然而,如果你可以使用标签代替(他们确实有非常相似的功能),那么你可以定位文本内容:
<Label VerticalContentAlignment="Center" HorizontalContentAlignment="Center">
I am centred text!
</Label>
默认情况下,标签将拉伸以填充其边界,这意味着标签的文本将居中。