views:

918

answers:

1

I can set the background of each TabItem with TabItem.Background, but when that tab is selected it is plain vanilla white.

How do I set the style of the tab header that is focused?

<TabControl DockPanel.Dock="Top">
    <TabControl.Background>
        <LinearGradientBrush EndPoint="1.115,1.13" StartPoint="0,-0.02">
            <GradientStop Color="#FFFFFFFF" Offset="1"/>
            <GradientStop Color="#FFE0E376" Offset="0"/>
        </LinearGradientBrush>
    </TabControl.Background>

    <TabItem Header="Allgem." Cursor="Hand">
        <TabItem.Background>
            <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                <GradientStop Color="#FFF3F3F3" Offset="0"/>
                <GradientStop Color="#FFF11818" Offset="1"/>
            </LinearGradientBrush>
        </TabItem.Background>
        <StackPanel DockPanel.Dock="Bottom" Width="400" HorizontalAlignment="Left" Margin="10">
            ...
+3  A: 

You can use a trigger to change the style only for the selected tab:

<TabControl DockPanel.Dock="Top">
    <TabControl.Resources>
        <Style TargetType="{x:Type TabItem}">
            <Style.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Background">
                        <Setter.Value>
                            <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                                <GradientStop Color="#FFF3F3F3" Offset="0"/>
                                <GradientStop Color="#FFF11818" Offset="1"/>
                            </LinearGradientBrush>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </TabControl.Resources>
    <TabControl.Background>
        <LinearGradientBrush EndPoint="1.115,1.13" StartPoint="0,-0.02">
            <GradientStop Color="#FFFFFFFF" Offset="1"/>
            <GradientStop Color="#FFE0E376" Offset="0"/>
        </LinearGradientBrush>
    </TabControl.Background>
    <TabItem Header="Allgem." Cursor="Hand">
        <StackPanel DockPanel.Dock="Bottom" Width="400"
            HorizontalAlignment="Left" Margin="10">
        ...
        </StackPanel>
    </TabItem>
</TabControl>

This will set the background of the selected tab to the red gradient used in your sample code.

Andy