【发布时间】:2014-10-03 19:47:57
【问题描述】:
我有一个这样的椭圆:
<Ellipse Width="40" Height="50" Fill="Green">
<Ellipse.RenderTransform>
<RotateTransform Angle="0" CenterX="20" CenterY="25" />
</Ellipse.RenderTransform>
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Ellipse.Loaded" >
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.Angle"
From="0" To="360" Duration="{Binding Path=Dudu}" RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Ellipse.Triggers>
</Ellipse>
我希望椭圆随速度旋转取决于Dudu 属性(此属性使用INotifyPropertyChanged 通知更改)。
但是当我更改Dudu 的值时,持续时间不会改变。我发现问题是 Loaded 事件只是在第一次加载控件时引发。
我的问题是:如何通过更改属性值来更改持续时间?我应该使用什么事件?
【问题讨论】:
-
Duration 不是依赖属性,你不能绑定它。
-
你可能会创建一个行为,它可以根据绑定值调用动画。
-
@ethicallogics 看看online documentation。
标签: wpf xaml binding duration doubleanimation