我有几个按钮,我设置如下:
<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 部分在所有这些按钮中几乎相同。不同的两行是上面“Here--->”指示的值绑定。
这些差异允许我为每个按钮加载不同的图像。
有没有办法进行设置,这样我就不必为每个按钮复制 Button.Resources 了? (但仍然在每个按钮中加载不同的图像)。