Text vertical alignment in WPF TextBlock Text vertical alignment in WPF TextBlock wpf wpf

Text vertical alignment in WPF TextBlock


A Textblock itself can't do vertical alignment

The best way to do this that I've found is to put the textblock inside a border, so the border does the alignment for you.

<Border BorderBrush="{x:Null}" Height="50">    <TextBlock TextWrapping="Wrap" Text="Some Text" VerticalAlignment="Center"/></Border>

Note: This is functionally equivalent to using a grid, it just depends how you want the controls to fit in with the rest of your layout as to which one is more suitable


While Orion Edwards Answer works for any situation, it may be a pain to add the border and set the properties of the border every time you want to do this. Another quick way is to set the padding of the text block:

<TextBlock Height="22" Padding="3" />


The TextBlock doesn't support vertical text alignment.

I work around this by wrapping the text block with a Grid and setting HorizontalAlignment="Stretch" and VerticalAlignment="Center".

Like this:

<Grid>    <TextBlock         HorizontalAlignment="Stretch"        VerticalAlignment="Center"        Text="Your text" /></Grid>