当父按钮更改其启用状态时更改图像源

本文关键字:图像 状态 按钮 启用 | 更新日期: 2023-09-27 18:11:17

我有这个XAML代码:

<Button x:Name="ButtonUpdate" IsEnabled="False">
    <Image Source="Images/update gray.png" Name="ImgUpdate" >
        <Image.Style>
            <Style TargetType="{x:Type Image}">
                <Style.Triggers>
                    <Trigger Property="IsEnabled" Value="True">
                        <Setter Property="Source" Value="Images/update.png" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Image.Style>
    </Image>
</Button>

我想当ButtonUpdate被启用时:

ButtonUpdate.IsEnabled = true;

ImgUpdate.Source变为"Images/update.png",当ButtonUpdate未使能时:

ButtonUpdate.IsEnabled = false;

ImgUpdate.Source使用数据绑定变成"Images/update gray.png"

我的XAML代码不工作。错误在哪里?我该怎么修理它?

当父按钮更改其启用状态时更改图像源

您的Trigger应用于Image,而不是按钮,因此在这种情况下监控的IsEnabled属性是Image.IsEnabled属性,这不是您想要的。

您可以为Button创建Style,并在Style中使用Trigger来根据IsEnabled的状态更改按钮的Content,或者您可以创建ControlTemplate,将Image作为Button的内容,并根据按钮的启用状态更改ImageSource

这个答案似乎提供了你所问问题的细节

图片源属性应该是这样的格式:

"/«YourAssemblyName»;组件/«YourPath»和«YourImage.png»"

例子
<Image Source="/WPFApplication;component/Images/Start.png" />

查看这篇文章获取更多信息:

WPF图片资源