首页 > 解决方案 > 我想在 tabPage 处于活动状态时更改它的背景

问题描述

我想将自定义背景设置为 tabPage,但它仅在其不活动时才有效。

<TabItem Header="Камера" VerticalAlignment="Center" Width="170" Height="40" BorderBrush="{x:Null}" >
                <TabItem.Background>
                    <ImageBrush ImageSource="res/tap.png"/>
                </TabItem.Background>
</TabItem>

这仅在选项卡未处于活动状态时有效 https://ibb.co/hD28jVB 如何在 tabItem 处于活动状态或悬停时更改它的画笔?

标签: c#wpf

解决方案


您需要为自定义定义一个自定义ControlTemplateTabItem因为默认设置将Background属性设置为一些静态SolidColorBrushes

<SolidColorBrush x:Key="TabItem.MouseOver.Border" Color="#7EB4EA"/>
<SolidColorBrush x:Key="TabItem.Disabled.Background" Color="#F0F0F0"/>
<SolidColorBrush x:Key="TabItem.Disabled.Border" Color="#D9D9D9"/>
<SolidColorBrush x:Key="TabItem.Selected.Border" Color="#ACACAC"/>
<SolidColorBrush x:Key="TabItem.Selected.Background" Color="#FFFFFF"/>

TabItem在 Visual Studio 或 Blend 中的设计模式下右键单击并选择Edit Template->Edit a Copy获取默认模板的副本,然后根据您的要求对其进行编辑。寻找设置Background属性的设置器,例如:

<Setter Property="Background" TargetName="mainBorder" Value="{StaticResource TabItem.MouseOver.Background}"/>

推荐阅读