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:如果你有困难,我也可以举一个具体的例子。