Blend 4 Beta:如何更改图像源作为时间轴的一部分

时间:2010-04-28 14:38:20

标签: wpf xaml expression-blend blend mouseleave

我正在尝试使用Blend 4测试版,并寻找一种方法来做一件简单的事情:

  • 当鼠标悬停在图像上时, 图像应将其源更改为不同的图像。 当MouseLeave发生时,图像会变回。

知道我可以在源代码中完成它,但我正在寻找一种无代码的方法来做到这一点,而无需手动编码xaml。

Blend 4看起来非常合适。但我试图使用启动故事的事件触发器或使用Visual States来设置它,但Blend似乎并没有“记住”图像源已经改变。它记得我改变了图像的其他属性(例如可见性,比例等)。但是Image源是我所追求的。

这是混合中的错误,还是我做错了什么?

2 个答案:

答案 0 :(得分:2)

一个选项是创建自定义操作并将其附加到图像。它仍然涉及代码,但有点混合。

public class ImageSwitchAction : TriggerAction<Image>   
{
    public ImageSource TargetImage { get; set; }
    protected override void Invoke(object o)
    {
        AssociatedObject.Source = TargetImage;
    }
}

将类添加到项目和构建后,可以将新行为拖动到时间轴中的任何图像对象,并在操作属性中配置触发器和ImageSource。在您的情况下,为MouseEnter添加一个动作,为MouseLeave添加一个动作。

答案 1 :(得分:-2)

简单方法:

首先,订阅图像鼠标输入和鼠标离开事件然后在此事件中

使用image.setsource(new Uri(new image url))为每个事件设置图像源

如果你有麻烦,我可以在后面发布实际代码

问候 锐