Cómo cambiar el color de fondo de TabControl.Header

Necesito cambiar el color de fondo del encabezado de TabControl, pero TabControl no tiene propiedades para ello, ¿cómo puedo hacerlo? Ayudame por favor. Aquí está mi código:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="502" Width="628">
    <TabControl Background="#123" TabStripPlacement="Left" HorizontalAlignment="Stretch" BorderBrush="#41020202">
        <TabControl.BitmapEffect>
            <DropShadowBitmapEffect Color="Black" Direction="270"/>
        </TabControl.BitmapEffect>
        <TabControl.Resources>
            <Style TargetType="{x:Type TabItem}">
                <Setter Property="BorderThickness" Value="0"/>
                <Setter Property="Padding" Value="0" />
                <Setter Property="HeaderTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <Border x:Name="grid" Background="Red">
                                <ContentPresenter>
                                    <ContentPresenter.Content>
                                        <TextBlock Margin="4" FontSize="15" Text="{TemplateBinding Content}"/>
                                    </ContentPresenter.Content>
                                    <ContentPresenter.LayoutTransform>
                                        <RotateTransform Angle="270" />
                                    </ContentPresenter.LayoutTransform>
                                </ContentPresenter>
                            </Border>
                            <DataTemplate.Triggers>
                                <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type TabItem}},Path=IsSelected}" Value="True">
                                    <Setter TargetName="grid" Property="Background" Value="Green"/>
                                </DataTrigger>
                            </DataTemplate.Triggers>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </TabControl.Resources>
        <TabItem Header="Tab Item 1" />
        <TabItem Header="Tab Item 2" />
        <TabItem Header="Tab Item 3" />
        <TabItem Header="Tab Item 4" />
    </TabControl>
</Window>

Aquí está mi resultado: Mi resultado

Aquí está el resultado que necesito: Aquí está el resultado que necesito

preguntado el 29 de mayo de 12 a las 12:05

Recuerdo estar atascado en ese tema también, si no recuerdo mal, tengo un proyecto en casa en el que resolví, lo buscaré si aún no lo has encontrado para entonces. -

Siempre puede modificar la plantilla de control copiándola y realizando sus modificaciones locales. Esto es engorroso, pero también lo que hace que WPF sea tan flexible. -

Búscalo, por favor. Realmente me necesita. -

Tengo pereprobyval todos los estilos: TabControl.ItemContainerStyle, TabControl.ItemsPanel, TabControl.Style, pero ninguno no ayudó, por favor dígame qué estilo debería cambiarse al menos:

4 Respuestas

Agregar el siguiente estilo en la sección TabControl.Resources debería hacer lo que desea.

<Style TargetType="{x:Type TabPanel}">
    <Setter Property="Background" Value="Black"></Setter>
</Style>

contestado el 29 de mayo de 12 a las 12:05

Muchas gracias, realmente me ayudas. - Creativo

+1, respuesta muy simple. Funciona bien ... probablemente debería marcarse como la mejor respuesta: jon dosmann

Si la respuesta ShadeOfGrey no funciona, debe usar Grid en lugar de TabPanel:

<TabControl.Resources>
    <Style TargetType="{x:Type Grid}">
        <Setter Property="Background" Value="WhiteSmoke"/>
    </Style>
</TabControl.Resources>

Respondido el 25 de enero de 20 a las 11:01

Debe establecer el estilo para TabPanel... Básicamente, organizamos las pestañas en TabPanel en TabControl.

El siguiente código te ayudará..

<TabControl Background="#123" TabStripPlacement="Left" HorizontalAlignment="Stretch" BorderBrush="#41020202">
            <TabControl.BitmapEffect>
                <DropShadowBitmapEffect Color="Black" Direction="270"/>
            </TabControl.BitmapEffect>
            <TabControl.Resources>
                <Style TargetType="{x:Type TabPanel}">
                    <Setter Property="Background" Value="Yellow"/>
                </Style>
                <Style TargetType="{x:Type TabItem}">
                    <Setter Property="BorderThickness" Value="0"/>
                    <Setter Property="Padding" Value="0" />
                    <Setter Property="HeaderTemplate">
                        <Setter.Value>
                            <DataTemplate>
                                <Border x:Name="grid" Background="Red">
                                    <ContentPresenter>
                                        <ContentPresenter.Content>
                                            <TextBlock Margin="4" FontSize="15" Text="{TemplateBinding Content}"/>
                                        </ContentPresenter.Content>
                                        <ContentPresenter.LayoutTransform>
                                            <RotateTransform Angle="270" />
                                        </ContentPresenter.LayoutTransform>
                                    </ContentPresenter>
                                </Border>
                                <DataTemplate.Triggers>
                                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type TabItem}},Path=IsSelected}" Value="True">
                                        <Setter TargetName="grid" Property="Background" Value="Green"/>
                                    </DataTrigger>
                                </DataTemplate.Triggers>
                            </DataTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </TabControl.Resources>
            <TabItem Header="Tab Item 1" />
            <TabItem Header="Tab Item 2" />
            <TabItem Header="Tab Item 3" />
            <TabItem Header="Tab Item 4" />
        </TabControl>

contestado el 29 de mayo de 12 a las 12:05

La solución anterior no funcionó para mí, pero tenía mi Control de pestañas en un Control de usuario y no en una ventana. La configuración del color de fondo del Control de usuario solucionó el problema; tal vez esto sea útil para otros con el mismo problema si la solución votada no funciona.

contestado el 01 de mayo de 17 a las 07:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.