[英]Change default highlight colour of TabItem in TabControl WPF
我正在尝试在WPF的选项卡控件中更改选项卡项目的默认突出显示颜色。
在图像中,高亮显示颜色为橙色,我只想知道是否可以将其更改为另一种纯色?
这是我的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>
另外请注意,我无权访问表达式混合,因此在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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.