0

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

4

1 回答 1

0

您可以忽略该From值。

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

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

于 2012-07-13T09:46:03.383 回答