17
votes

in my XAML code, I have a TabControl with multiple items. The problem I have is that I can not center the tabitems about the content area. The tabs are always starting on the left side, but I need them centered. This is my code:

<TabControl>
    <TabItem Header="Test 1"  Style="{StaticResource LeftTab}" Height="40" />
    <TabItem Header="Test 2"  Style="{StaticResource MiddleTab}"  />
    <TabItem Header="Test 3"  Style="{StaticResource MiddleTab}" />
    <TabItem Header="Test 4" Style="{StaticResource RightTab}"  />
</TabControl>

I do not know a property to center the items - any idea?

1
this is a pretty good question since I'm sure lots of people would like to be able to do that but just won't take the effort of trying.David Brunelle

1 Answers

51
votes

Internally, the TabControl uses a TabPanel to layout the tabs. Using the default template, you just need to set the HorizontalAlignment of the TabPanel through a style:

<TabControl>
    <TabControl.Resources>
        <Style TargetType="{x:Type TabPanel}">
            <Setter Property="HorizontalAlignment" Value="Center" />
        </Style>
    </TabControl.Resources>

    <TabItem Header="Test 1" />
    <TabItem Header="Test 2" />
    <TabItem Header="Test 3" />
    <TabItem Header="Test 4" />
</TabControl>