如何在属性绑定发生变化时开始故事板?当图像源发生变化时播放故事板
我的图像源每5秒更换一次(在我的ViewModel中),我想在图像变化时播放故事板。
<Grid>
<Image x:Name="image" Source="{Binding CurrentImage}"/>
</Grid>
如何在属性绑定发生变化时开始故事板?当图像源发生变化时播放故事板
我的图像源每5秒更换一次(在我的ViewModel中),我想在图像变化时播放故事板。
<Grid>
<Image x:Name="image" Source="{Binding CurrentImage}"/>
</Grid>
您通常会为一个事件添加一个EventTrigger,该事件在Source
属性更改时触发。不幸的是,Image控件没有定义这样的事件,所以你就必须从图像派生来创建自己:
<local:MyImage Source="{Binding Image}">
<local:MyImage.Triggers>
<EventTrigger RoutedEvent="local:MyImage.SourceChanged">
<BeginStoryboard>
<Storyboard>
...
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</local:MyImage.Triggers>
</local:MyImage>
我认为你应该更好地向你的ViewModel添加一个事件,并在源代码发生变化时启动它。当然,在该事件中使用EventTrigger来执行Storyboard。
感谢:
现在,你可以在一个EventTrigger使用
SourceChanged
事件这个 :) – Ralt 2017-11-30 08:16:04