2010-04-28 27 views
3
的一部分

我尝试混合4测试版,并寻找一种方式做一个简单的事情:混合4测试版:如何改变图像源作为时间轴

  • 当鼠标在图像上徘徊, 图像应该将其来源更改为不同的图像。 当MouseLeave发生时,图像变回。

知道我能做到这一点的源代码,但是我正在寻找一个代码免费的方式做到这一点,而无需手动编码XAML。

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

这是一个混合错误,或者我做错了什么?

+0

为什么你不能只有2个图像,并改变其中之一的可见性/不透明度? – 2010-04-28 15:08:46

+0

我有同样的问题,但我只是手工编码XAML。 :-( – 2010-04-28 15:22:16

回答

2

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

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

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

+3

现在我想到了,内置的ChangePropertyAction可以做同样的事情,将它添加到图像中,设置触发器,选择TargetObject(图像),选择PropertyName Source,然后设置它的目标值 – Tosh 2010-04-28 17:23:01

+0

可以通过混合来完成吗? – RoyOsherove 2010-04-28 19:31:54

+0

我检查过了,它可以在Blend中完成。 – RoyOsherove 2010-04-28 19:39:09

-2

简单的方法:

第一,订阅您的图像鼠标的事件进入和鼠标离开则在此事件

使用image.setsource(新的URI(新图像URL))来设置图像源每个事件

如果u有麻烦,我可以张贴实际的代码在这里后者

问候 锐

+1

问题是关于如何做到这一点而不求助于代码 – 2010-04-28 15:26:48