itemscontrols c# wpf background styles tabcontrol

c# - itemscontrols - list items wpf



Cómo cambiar el color de fondo de TabControl.Header (3)

Necesito cambiar el color de fondo del encabezado TabControl, pero TabControl no tiene propiedades para él, ¿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:

Aquí está el resultado que necesito:


Agregando el siguiente estilo en la sección de TabControl.Resources debería hacer lo que quiera.

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


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>


La solución anterior no funcionó para mí, pero tenía mi control de pestaña en un control de usuario y no en una ventana. Establecer el color de fondo de Control de usuario solucionó el problema; quizás esto sea útil para otros con el mismo problema si la solución no aprobada no funciona.