gpt4 book ai didi

c# - 如何更改 TabControl 中所选选项卡的颜色?

转载 作者:太空狗 更新时间:2023-10-29 20:56:38 26 4
gpt4 key购买 nike

我正在为 WPF 中的对话框实现 TabControl。默认情况下,所选选项卡(按下鼠标)的颜色为白色。我想将所选选项卡的颜色更改为悬停颜色(当我将鼠标悬停在选项卡上时,选项卡的颜色变为 Office-blue-gradient,这就是我希望所选选项卡的颜色是单击鼠标)。

我该怎么做?

这段代码不起作用:

<Style x:Key="StyleTabControl" TargetType="{x:Type TabItem}">
<Setter Property="Background" Value="#FFFDFDFD"/>
<Style.Triggers>
<Trigger Property="IsSelected " Value="True">
<Setter Property="Background" Value="SlateGray"></Setter>
</Trigger>
</Style.Triggers>
</Style>

注意:我还为触发器属性尝试了 IsMouseCaptured 事件。还是不行。

最佳答案

好吧...经过几个小时的尝试,我意识到 TabItem 选择行为是在模板级别定义的。所以,如果我想改变背景颜色,我会这样做:

<Window.Resources>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Border>
<Grid>
<Grid>
<Border x:Name="border"
CornerRadius="3,3,0,0"
Background="WhiteSmoke"/>
</Grid>
<ContentPresenter ContentSource="Header"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver"
Value="True">
<Setter TargetName="border"
Property="Background"
Value="LightGray" />
</Trigger>
<Trigger Property="IsSelected"
Value="True">
<Setter TargetName="border"
Property="Background"
Value="LightGray" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>

关于c# - 如何更改 TabControl 中所选选项卡的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18470918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com