私は 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 つしか表示されない可能性があるため、うまく機能します。