WPF ListBoxItemsでのマウスオーバーと選択にストーリーボードアニメーションを使用する

.net animation listbox storyboard wpf
WPF ListBoxItemsでのマウスオーバーと選択にストーリーボードアニメーションを使用する

マウスオーバー効果を適用しようとしているリストボックスを持つWPFアプリを持っています。 マウスオーバー/選択時に背景色を変更するために単純な Setter`を使用するとすべて正常に動作しますが、状態間でアニメーション化すると見た目が良くなると考えたので、 Setter`sをEnter / Exit `Storyboard`に切り替えましたs。 最初はすべて正常に動作します(マウスオーバーでのアニメーション、選択でのアニメーション)が、何かが選択されてから選択解除されると、マウスオーバー効果は二度と行われません。

問題を示すための最小限のコード例を次に示します。

exitアニメーションを黒以外の色にフェードさせたので、「IsSelected」exitストーリーボードの後に​​スタックしていることがわかります。

何か案は?

  4  0


ベストアンサー

ストーリーボードのデフォルトの動作では、プロパティ値をアニメーションの最後のフレームの値に設定し続けます。 Animation Tips and Tricks、特に「アニメーション化した後にプロパティの値を変更できない」セクションを参照してください。 ストーリーボードを停止することはないため、最終的にはすべてが実行され、最後に宣言されたものが最終値を設定します。

ストーリーボードが値の設定を停止するように、ストーリーボードのhttp://msdn.microsoft.com/en-us/library/system.windows.media.animation.timeline.fillbehavior.aspx[FillBehavior]をStopに設定できます。完了した後。 ExitActionsストーリーボードでこれを実行したいが、通常のトリガーで背景色も設定しない限り、EnterActionストーリーボードでは実行しないと思います。 このようなもの:

13


タイトルとURLをコピーしました