3

ビジュアル/論理ツリーから削除される直前に、WPF コントロールをアニメーション化するシナリオがあります。コントロールはカスタムであり、アニメーションを含むコントロール スタイルは設計者によって提供されます (つまり、コントロール コードを記述する時点では、それらがどうなるかについての詳細はわかりません)。オブジェクトが削除される直前にデザイナーがアニメーションをトリガーできるようにするルーティング イベントを提供したいと考えています (たとえば、ユーザーがマウスでコントロールをドラッグしていて、マウス ボタンを離すと、コントロールが急激にではなくゆっくりとフェードアウトする場合があります)。ビジュアル/論理ツリーから削除されます)。これは、ルーティング イベントを使用するだけで可能ですか? デザイナーが風変わりな依存関係プロパティを設定したり、アニメーションの最後にコントロールの削除をトリガーしたりする必要なく、アニメーションの完了を検出することは可能ですか? 依存関係プロパティを使用すると、デザイナーがプロパティの設定に失敗した場合にメモリ リークが発生します。より良い方法はありますか?

4

1 に答える 1

2

すべてのストーリーボードには、アニメーションが完了すると呼び出される Completed イベントがあります。そのイベントを処理し、そのイベントからコントロールを削除する必要があります。そうすれば、マウス ボタンを離したときにアニメーションを開始できます。

于 2008-10-27T18:31:20.440 に答える