Ant*_*Ant 219 wpf textblock vertical-alignment
如何为TextBlock中的文本指定垂直居中对齐?我找到了TextAlignment属性,但它用于水平文本对齐.如何进行垂直文本对齐?
Ori*_*rds 274
Textblock本身不能进行垂直对齐
我发现这样做的最好方法是将文本块放在边框内,这样边框就可以为你做对齐.
<Border BorderBrush="{x:Null}" Height="50">
<TextBlock TextWrapping="Wrap" Text="Some Text" VerticalAlignment="Center"/>
</Border>
Run Code Online (Sandbox Code Playgroud)
注意:这在功能上等同于使用网格,它只取决于您希望控件如何适应布局的其余部分,哪一个更适合
Ben*_*nes 96
虽然Orion Edwards Answer适用于任何情况,但每次要执行此操作时添加边框并设置边框属性可能会很麻烦.另一种快速方法是设置文本块的填充:
<TextBlock Height="22" Padding="3" />
Run Code Online (Sandbox Code Playgroud)
hwi*_*ers 51
TextBlock不支持垂直文本对齐.
我通过使用Grid包装文本块并设置HorizontalAlignment ="Stretch"和VerticalAlignment ="Center"来解决此问题.
像这样:
<Grid>
<TextBlock
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Text="Your text" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
Ane*_*iel 15
您可以使用label而不是textblock.
<Label Content="Hello, World!">
<Label.LayoutTransform>
<RotateTransform Angle="270"/>
</Label.LayoutTransform>
</Label>
Run Code Online (Sandbox Code Playgroud)
如果您可以不用文本换行,我认为将 TextBlock 替换为 Label 是最简洁的方法。否则,请遵循其他有效答案之一。
<Label Content="Some Text" VerticalAlignment="Center"/>
Run Code Online (Sandbox Code Playgroud)
TextBlock
不支持其内容的垂直对齐。如果必须使用,TextBlock
则必须使其相对于其父对象对齐。
但是,如果可以Label
代替使用(它们确实具有非常相似的功能),则可以放置文本内容:
<Label VerticalContentAlignment="Center" HorizontalContentAlignment="Center">
I am centred text!
</Label>
Run Code Online (Sandbox Code Playgroud)
在Label
将伸展在默认情况下,以填补其边界,这意味着该标签的文本将居中。