【发布时间】:2012-01-09 14:56:36
【问题描述】:
所以我试图让我的 TabItem 显示不同的图像,具体取决于它是否被选中。现在我已经使用下面的代码让它工作了:
<Window.Resources>
<local:UnselectedImageFilenameConverter x:Key="UnselectedImageFilenameConverter" />
<local:SelectedImageFilenameConverter x:Key="SelectedImageFilenameConverter" />
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Image Source="{TemplateBinding Header, Converter={StaticResource UnselectedImageFilenameConverter}}" Stretch="None" />
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Template" >
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Image Source="{TemplateBinding Header, Converter={StaticResource SelectedImageFilenameConverter}}" Stretch="None" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
然而这似乎是多余的。当我只需要更改图像源时,我正在更改整个模板。似乎应该有一种更简洁的方法来做到这一点,但到目前为止还没有运气。有什么想法吗?
【问题讨论】:
标签: c# wpf templates xaml triggers