1
私はそれが選択されているかどうかに応じて別のイメージを表示するTabItemを取得しようとしています。今すぐ次のコードを使用して作業しています。WPFのトリガでテンプレートの単一の属性を変更する方法はありますか?
<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>
これはかなり冗長なようです。私が必要とするのは、画像ソースを変更することだけです。これを行うためのより簡潔な方法があるように思われるが、これまでのところ運がない。何か案は?
ソースバインディングを{Binding RelativeSource = {RelativeSource TemplatedParent}、Path = Header、Converter = {StaticResource UnselectedImageFilenameConverter}}に変更する必要がありました。 –
それはあなたのために働いてうれしい! – CodeWarrior