绑定动画不止一次播放

时间:2012-07-13 09:36:38

标签: c# wpf mvvm propertychanged

我使用MVVM,我遇到了一个需要一个按钮来触发动画的情况。 所以我为它设置了EventTrigger并运行了这个动画:

<DoubleAnimation 
    (...)
    From="{Binding ElementName=Browser, Path=DataContext.TooltipPosition}"
To="150"/>

问题在于我不希望该动画多次播放。因此,按下第一个按钮后,它应该从0到150,对于所有后续点击,它不应该是可见的,所以它应该从150到150.
在我的ViewModel中,我有一个属性TooltipPosition,它设置为0.我为我的按钮创建了一个命令,将该属性设置为150并调用。

PropertyChanged(this, new PropertyChangedEventArgs("TooltipPosition").

问题是这个属性在第二次点击后会被更改,所以我可以看到这个动画播放两次。

我该如何解决?

-edit -

是的,很抱歉,我没有提供所有信息。 我试图动画很多物体,其中只有一个是可见的。因此,如果用户更改GUI中对象的选择,则动画应该再次从0开始到150。显然,如果元素A是动画的,那么B,然后是A,那么这个动画将不可见。

-edit2 -

我为TextBlock的宽度设置动画。问题是我有多个(绑定数据)TextBlocks,任何时候都只能看到一个或者没有一个。所以我绑定每个TextBlock的Width属性,我动画,所以基本上所有这些都受到这个动画的影响。但是只有其中一个可见,所以它可以解决问题。

1 个答案:

答案 0 :(得分:0)

您可以省略From值。

请参阅DoubleAnimation.To中的备注部分:

  

动画从动画属性的基值或上一个动画的输出值前进到To属性指定的值