我希望将DoubleAnimation.To绑定到依赖属性,并在该属性更改时触发动画。我可以让基本的动画工作,但不知道如何在属性改变时触发它。
这个例子展示了我试图让Rectangle的Canvas.Left属性动画化。请注意,我已经将DoubleAnimation.To绑定到了位置。我想让动画在位置改变时运行并移动我的矩形。有人能帮我找出正确的引爆器吗?
<Viewbox>
<Canvas Height="200" Width="200">
<Rectangle Name="MyRectangle" Canvas.Left="50" Canvas.Top="50" Width="100" Height="100" Fill="Blue">
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded">
<BeginStoryboard>
<Storyboard Name="MyStoryboard">
<DoubleAnimation Storyboard.TargetName="MyRectangle"
Storyboard.TargetProperty="(Canvas.Left)"
To="{Binding Position}" Duration="0:0:5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
</Canvas>
发布于 2015-05-21 06:39:59
答案是使用EventTrigger并将其RoutedEvent属性设置为Binding.TargetUpdated。此外,您还必须将NotifyOnTargetUpdated=True添加到绑定中(在我的示例中,位置)。
<Viewbox>
<Canvas Height="200" Width="200">
<Rectangle Name="MyRectangle" Canvas.Left="50" Canvas.Top="50" Width="100" Height="100" Fill="Blue">
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Binding.TargetUpdated">
<BeginStoryboard>
<Storyboard Name="MyStoryboard">
<DoubleAnimation Storyboard.TargetName="MyRectangle"
Storyboard.TargetProperty="(Canvas.Left)"
To="{Binding Position, NotifyOnTargetUpdated=True}" Duration="0:0:5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
</Canvas>
</Viewbox>https://stackoverflow.com/questions/30361056
复制相似问题