Wpf 绑定到DoubleAnimation.to
我希望将DoubleAnimation.to绑定到依赖项属性,并在该属性更改时触发动画。我可以让基本动画正常工作,但无法确定在属性更改时如何触发它 该示例显示我正在尝试为矩形的Canvas.Left属性设置动画。请注意,我已将DoubleAnimation.To绑定到位置。我希望动画运行并在位置更改时移动矩形。有人能帮我找出正确的触发器吗Wpf 绑定到DoubleAnimation.to,wpf,storyboard,Wpf,Storyboard,我希望将DoubleAnimation.to绑定到依赖项属性,并在该属性更改时触发动画。我可以让基本动画正常工作,但无法确定在属性更改时如何触发它 该示例显示我正在尝试为矩形的Canvas.Left属性设置动画。请注意,我已将DoubleAnimation.To绑定到位置。我希望动画运行并在位置更改时移动矩形。有人能帮我找出正确的触发器吗 <Viewbox> <Canvas Height="200" Width="200"> <Rectangle Name=
<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>
答案是使用EventTrigger并将其RouteEvent属性设置为Binding.TargetUpdate。此外,必须将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>