WPF: How to set background of TabItem?

user593358 picture user593358 · Jun 8, 2011 · Viewed 15.1k times · Source

How to set the background of TabItem? I tried the following code:

<TabControl>
    <TabItem Header="Test" Background="Blue" Foreground="Red" />
</TabControl>

Foreground works, but Background does not work.

enter image description here

Any ideas? Thanks

Answer

Oppositional picture Oppositional · Jun 8, 2011

What is happening is that in the case of a single tab, it is always selected, and so you are only seeing the selection style of the tab item.

For example, take a look at the following TabControl:

<TabControl>
    <TabItem Header="Tab A" Background="Blue" Foreground="Red">
        <Grid />
    </TabItem>

    <TabItem Header="Tab B" Background="Green" Foreground="Navy" >
        <Grid />
    </TabItem>

    <TabItem Header="Tab C" Background="LightBlue">
        <Grid />
    </TabItem>

</TabControl>

Tab A will not display its Blue background until you select a different tab. If you truly want the Background to remain the same regardless of whether it is selected or not, you will need to override the control template of the TabItem.

See the question TabItem Background color changes when tabitem selected or hover over for an example of how to do this.