次のように設定したボタンがいくつかあります。
<Button Template="{DynamicResource btnTmplt}" Command="{Binding ImgChgeCmd}" >
<Button.Resources>
<ControlTemplate x:Key="btnTmplt" TargetType="{x:Type Button}">
<StackPanel x:Name="stPanel" HorizontalAlignment="Left" Width="Auto"
Height="Auto" Orientation="Horizontal">
<Image x:Name="img" Source=""></Image>
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Trigger.Setters>
<Setter TargetName="img" Property="Source"
Here---------> Value="{Binding FirstImage, Converter={StaticResource GrayScaleConverter}}" />
<Setter TargetName="stPanel" Property="BitmapEffect">
<Setter.Value>
<BlurBitmapEffect Radius="1" />
</Setter.Value>
</Setter>
</Trigger.Setters>
</Trigger>
<Trigger Property="IsEnabled" Value="True">
<Trigger.Setters>
And Here--> <Setter TargetName="img" Property="Source" Value="{Binding FirstImage}" />
<Setter TargetName="stPanel" Property="BitmapEffect" Value="{x:Null}" />
</Trigger.Setters>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Resources>
</Button>
Button.Resources セクションは、これらすべてのボタンでほぼ同じです。異なる 2 行は、上記の「Here--->」で示される値バインディングです。
これらの違いにより、ボタンごとに異なる画像を読み込むことができます。
ボタンごとに Button.Resources を複製する必要がないように、これを設定する方法はありますか? (ただし、各ボタンに異なる画像をロードします)。