C# 如何更改TabControl';选择选项卡时,是否显示选项卡项目标题?

C# 如何更改TabControl';选择选项卡时,是否显示选项卡项目标题?,c#,wpf,xaml,C#,Wpf,Xaml,我在窗口中有以下TabControl,当选择这些选项卡时,我需要将图像分别更改为“awb white.png”和“center weighted white.png”。(未选中时返回到白色)。最好的办法是什么?可以在XAML中完成吗 <Window x:Class="WpfApplication6.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xm

我在窗口中有以下
TabControl
,当选择这些选项卡时,我需要将图像分别更改为“awb white.png”和“center weighted white.png”。(未选中时返回到白色)。最好的办法是什么?可以在XAML中完成吗

<Window x:Class="WpfApplication6.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <TabControl>
        <TabItem>
            <TabItem.Header>
                <Image Source="images/awb-black.png" Stretch="None" />
            </TabItem.Header>
            <Grid />
        </TabItem>
        <TabItem>
            <TabItem.Header>
                <Image Source="images/center-weighted-black.png" Stretch="None" />
            </TabItem.Header>
            <Grid />
        </TabItem>
    </TabControl>
</Window>


我是WPF的新手,所以详细信息会有很大帮助。

使用带有默认标题设置器的
样式
,在
上添加一个
触发器
,并为新标题创建另一个设置器

<TabItem>
    <TabItem.Style>
         <Style TargetType="TabItem">
              <Setter Property="Header">
                  <Setter.Value>
                      <Image ...>
                  </Setter.Value>
              </Setter>
              <Style.Triggers>
                  <Trigger Property="IsSelected" Value="True">
                      <Setter Property="Header">
                          <Setter.Value>
                              <Image ...>
                          </Setter.Value>
                      </Setter>
                  </Trigger>
              </Style.Triggers>
         </Style>
    </TabItem.Style>
</TabItem>

由于这相当冗长,您可能希望从
TabItem
继承,并将其放在
Image.Sources
为两个自定义属性的默认位置,然后只需在实例上设置这些属性


还请注意,默认值在setter中这一事实很重要,因为如果直接设置,触发器将不会覆盖该值。

您能详细解释一下吗?我一直在尝试这样的事情,但没有得到任何工作。我对WPF完全陌生。@DaxFohl:添加了一个示例。太好了,真管用!如果我有很多标签页,.png文件名模式总是一样的话,有没有办法减少重复?哈,一定是对代码太兴奋了,甚至都没提到脚注。但这是有道理的;我很肯定我能从你的建议中找出继承的东西。@DaxFohl:如果你有困难,我也可以举一个具体的例子。