我使用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属性,我动画,所以基本上所有这些都受到这个动画的影响。但是只有其中一个可见,所以它可以解决问题。