0

私は MVVM を使用していますが、アニメーションをトリガーするボタンが必要な状況になりました。だから私はそれに EventTrigger を設定し、このアニメーションを実行します:

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

問題は、そのアニメーションを複数回再生したくないことです。したがって、最初のボタンを押した後は 0 から 150 になり、その後のすべてのクリックでは表示されないため、150 から 150 になるはず
です。ViewModel には、0 に設定されたプロパティ TooltipPosition があります。コマンドを作成しましたこのプロパティを 150 に設定して呼び出すボタンの場合。

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

問題は、このプロパティが 2 回目のクリック後に変更されるため、このアニメーションが 2 回再生されることです。

どうすれば修正できますか?

-編集-

ええ、申し訳ありませんが、すべての情報を含めませんでした。そのうちの 1 つだけが表示されるように、多くのオブジェクトをアニメーション化しようとしています。したがって、ユーザーが GUI でオブジェクトの選択を変更すると、アニメーションは 0 から 150 に再び開始する必要があります。そして明らかに、要素 A がアニメーション化され、次に B、そして再び A がアニメーション化された場合、このアニメーションは表示されません。

-編集2-

TextBlock の Width をアニメーション化します。問題は、複数の (バインディング データ) TextBlocks があり、いつでも 1 つだけ、または 1 つも表示されないようにすることです。したがって、すべての TextBlock の Width プロパティをバインドし、アニメーション化するので、基本的にすべてがこのアニメーションの影響を受けます。しかし、そのうちの 1 つしか表示されない可能性があるため、うまく機能します。

4

1 に答える 1

0

値を省略できFromます。

DoubleAnimation.Toの備考セクションを参照してください。

アニメーションは、アニメーション化されたプロパティのベース値または前のアニメーションの出力値から To プロパティで指定された値まで進行します

于 2012-07-13T09:46:03.383 に答える