如何禁用按钮时更改图像?

我试图在禁用按钮时显示不同的图像;我认为触发器很容易。如何禁用按钮时更改图像?

但是,当按钮被禁用时,我还没有能够让图像源切换到禁用的图像。我已经尝试在图像和按钮上设置触发器。我在下面有什么问题?当按钮被启用/禁用时,如何更改图像源?

<Button 

x:Name="btnName"

Command="{Binding Path=Operation}"

CommandParameter="{x:Static vm:Ops.OpA}">

<Button.Content>

<StackPanel>

<Image

Width="24"

Height="24"

RenderOptions.BitmapScalingMode="NearestNeighbor"

SnapsToDevicePixels="True"

Source="/MyAssembly;component/images/enabled.png">

<Image.Style>

<Style>

<Style.Triggers>

<DataTrigger Binding="{Binding ElementName=btnName, Path=Button.IsEnabled}" Value="False">

<Setter Property="Image.Source" Value="/MyAssembly;component/images/disabled.png" />

</DataTrigger>

</Style.Triggers>

</Style>

</Image.Style>

</Image>

</StackPanel>

</Button.Content>

</Button>

回答:

是的,这个弹出了很多。

在对象声明中明确设置的任何属性都不能在样式中更改。因为你已经在图像的声明中设置了图像的Source属性,所以这个样式的Setter将不会触及它。

试试这个:

<Image 

Width="24"

Height="24"

RenderOptions.BitmapScalingMode="NearestNeighbor"

SnapsToDevicePixels="True"

>

<Image.Style>

<Style TargetType="Image">

<Setter Property="Source"

Value="/MyAssembly;component/images/enabled.png" />

<Style.Triggers>

... your trigger and setter ...

</Style.Triggers>

</Style>

</Image.Style>

</Image>

以上是 如何禁用按钮时更改图像? 的全部内容, 来源链接: utcz.com/qa/257595.html

回到顶部