C# 更改TabControl WPF中TabItem的默认高亮显示颜色
我正在尝试更改WPF中选项卡控件中选项卡项的默认突出显示颜色。C# 更改TabControl WPF中TabItem的默认高亮显示颜色,c#,.net,wpf,xaml,tabcontrol,C#,.net,Wpf,Xaml,Tabcontrol,我正在尝试更改WPF中选项卡控件中选项卡项的默认突出显示颜色。 在图像中,突出显示的颜色是橙色,我只是想知道是否有办法将其更改为另一种纯色 这是我的XAML,它声明了TabControl和2个TabItems <TabControl> <TabControl.Background> <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
在图像中,突出显示的颜色是橙色,我只是想知道是否有办法将其更改为另一种纯色 这是我的XAML,它声明了TabControl和2个TabItems
<TabControl>
<TabControl.Background>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFCCCCD0"/>
<GradientStop Color="#FF526593" Offset="1"/>
</LinearGradientBrush>
</TabControl.Background>
<TabItem Header="test1">
<TabItem.Content>
<StackPanel Orientation="Horizontal">
<Button Content="Test" VerticalAlignment="Center" />
<Button Content="Test2" />
</StackPanel>
</TabItem.Content>
</TabItem>
<TabItem Header="Test2">
<TabItem.Content>
<TextBox />
</TabItem.Content>
</TabItem>
</TabControl>
另外请注意,我无法访问expression blend,因此任何解决方案都需要在Visual Studio 2010中实现
谢谢。您需要覆盖TabItem控件的样式。 下面是一个仍然需要调整的示例。只要把它改成你想要的样式。 IsSelected触发器在选中TabItem时会向其添加更改
<Window.Resources>
<ResourceDictionary>
<Style TargetType="{x:Type TabItem}">
<Setter Property="BorderThickness"
Value="3" />
<Setter Property="BorderBrush"
Value="Blue" />
<Setter Property="VerticalContentAlignment"
Value="Center" />
<Setter Property="HorizontalContentAlignment"
Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Border>
<Grid>
<Grid>
<Border x:Name="border"
CornerRadius="3,3,0,0"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="1,1,1,0" />
</Grid>
<Border BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}">
<ContentPresenter ContentSource="Header"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Border>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected"
Value="True">
<Setter TargetName="border"
Property="BorderBrush"
Value="Red" />
<Setter TargetName="border"
Property="BorderThickness"
Value="0,3,0,0" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
</Window.Resources>
<Grid>
<TabControl>
<TabControl.Background>
<LinearGradientBrush EndPoint="0,1"
StartPoint="0,0">
<GradientStop Color="#FFCCCCD0" />
<GradientStop Color="#FF526593"
Offset="1" />
</LinearGradientBrush>
</TabControl.Background>
<TabItem Header="test1">
<TabItem.Content>
<StackPanel Orientation="Horizontal">
<Button Content="Test"
VerticalAlignment="Center" />
<Button Content="Test2" />
</StackPanel>
</TabItem.Content>
</TabItem>
<TabItem Header="Test2">
<TabItem.Content>
<TextBox />
</TabItem.Content>
</TabItem>
</TabControl>
</Grid>
您需要覆盖TabItem控件的样式。 下面是一个仍然需要调整的示例。只要把它改成你想要的样式。 IsSelected触发器在选中TabItem时会向其添加更改
<Window.Resources>
<ResourceDictionary>
<Style TargetType="{x:Type TabItem}">
<Setter Property="BorderThickness"
Value="3" />
<Setter Property="BorderBrush"
Value="Blue" />
<Setter Property="VerticalContentAlignment"
Value="Center" />
<Setter Property="HorizontalContentAlignment"
Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Border>
<Grid>
<Grid>
<Border x:Name="border"
CornerRadius="3,3,0,0"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="1,1,1,0" />
</Grid>
<Border BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}">
<ContentPresenter ContentSource="Header"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Border>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected"
Value="True">
<Setter TargetName="border"
Property="BorderBrush"
Value="Red" />
<Setter TargetName="border"
Property="BorderThickness"
Value="0,3,0,0" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
</Window.Resources>
<Grid>
<TabControl>
<TabControl.Background>
<LinearGradientBrush EndPoint="0,1"
StartPoint="0,0">
<GradientStop Color="#FFCCCCD0" />
<GradientStop Color="#FF526593"
Offset="1" />
</LinearGradientBrush>
</TabControl.Background>
<TabItem Header="test1">
<TabItem.Content>
<StackPanel Orientation="Horizontal">
<Button Content="Test"
VerticalAlignment="Center" />
<Button Content="Test2" />
</StackPanel>
</TabItem.Content>
</TabItem>
<TabItem Header="Test2">
<TabItem.Content>
<TextBox />
</TabItem.Content>
</TabItem>
</TabControl>
</Grid>