【发布时间】:2014-10-09 05:23:25
【问题描述】:
在 WPF 项目中,我有一个 ItemsControl 绑定到 ViewModel 的集合。它的 ItemTemplate 包含一个绑定到对象集合属性的 Image 控件。我有一个计时器,它每分钟从 JSON 服务获取新图像,并将它们分配给绑定到图像的属性。
我想做的是在该属性更改时触发一个简单的动画。特别是,我想在将新图像分配给我的属性之前触发一个简单的淡出动画,这将涉及 PropertyChanging 事件,以及 PropertyChanged 上的淡入动画,因此我可以从旧图像平滑过渡到新图像我的视图中的图像。
我尝试了以下来自another question 的内容,但这会在属性更改后触发动画,这不是我想要的:
<Image
x:Name="ChannelImage"
Width="230" Height="230"
Source="{Binding ImageByteArray, Converter={StaticResource ByteArrayToBitmapImageConverter},
NotifyOnTargetUpdated=True}">
<Image.Triggers>
<EventTrigger RoutedEvent="Binding.TargetUpdated">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="ChannelImage"
Storyboard.TargetProperty="Opacity"
BeginTime="0:0:0"
Duration="0:0:1"
To="0"/>
<DoubleAnimation
Storyboard.TargetName="ChannelImage"
Storyboard.TargetProperty="Opacity"
BeginTime="0:0:2"
Duration="0:0:1"
To="1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>
</Image>
任何帮助将不胜感激。
【问题讨论】:
标签: wpf xaml mvvm storyboard inotifypropertychanged