WPF Groupbox header position alignment

alignment, groupbox, header, wpf

Solution

It's simple! Just edit Template of GroupBox:

In Blend, do the following :

- Right click GroupBox > Edit Template > Edit a Copy > OK

Search for following section:

<Border x:Name="Header" Padding="3,1,3,0" 
        Grid.Column="1" Grid.Row="0" Grid.RowSpan="2">
    ...
</Border>

Change `Grid.Column` to `2`

- Also set `HorizontalAlignment="Right"`

You have just aligned the header to right!!! But bot the white gap behind it. For that,

Now search for following section :

<Border BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="4" Grid.ColumnSpan="4" Grid.Row="1" Grid.RowSpan="3">
    <Border.OpacityMask>
        ...
    </Border.OpacityMask>
    ...
</Border>

Add `RenderTransformOrigin="0.5,0.5"` to the border

Just above , add following code (this will shift the "white gap" behind header to right:

<Border.RenderTransform>
    <ScaleTransform ScaleX="-1"/>
</Border.RenderTransform>

You are done! You just got a GroupBox with right aligned header!!!

Please tell me if this is what you required.

Problem

Is it possible to set the position alignment for a `GroupBox` `Header` in WPF? The default is to place in the top left corner of the `GroupBox` outline but I would like it to be centered at the top. I know that you can set the properties of the text using: ``` <GroupBox Grid.Row="1" HorizontalAlignment="Center"> <GroupBox.Header> <TextBlock Text="Cash Match" Foreground="Black" FontWeight="Bold"/> </GroupBox.Header> </GroupBox> ``` But I'm looking to set the position of it with respect to the `GroupBox` outline.

Original source