我使用了 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").
问题是这个属性在第二次点击后改变了,所以我可以看到这个动画播放了两次。
我该如何解决?
-编辑-
是的,很抱歉,我没有包括所有信息。我正在尝试为很多对象设置动画,其中只有一个是可见的。因此,如果用户在 GUI 中更改对象的选择,那么动画应该再次从 0 开始到 150。很明显,如果元素 A 是动画的,然后是 B,然后是 A,那么这个动画将不可见。
-edit2-
我为 TextBlock 的宽度设置动画。问题是我有多个(绑定数据)TextBlocks,并且在任何时候都应该只有一个或一个都不可见。因此,我绑定了每个 TextBlock 的 Width 属性并进行了动画处理,因此基本上所有这些属性都受此动画的影响。但是其中只有一个可能是可见的,所以它可以解决问题。