2017-06-06 18 views
1

デフォルトのUWP ListViewスタイルには、ItemContainerTransitionsTransitionCollectionにいくつかのテーマトランジションが含まれています。特定のテーマのトランジションのトランジションアニメーションが完了したときを知る方法はありますか?ThemeTransitionsの完了ハンドラ

たとえば、ListViewと、リストに項目を追加するボタンがあります。私は、アイテムが追加されている間、ボタンを無効にしたい、進行中に別のものがキューに入れられたときにアニメーションがキャンセルされるからです。ボタンTappedイベントに基づいてボタンを簡単に無効にすることはできますが、いつ再有効化できるかを知る必要があります。

1)AddDeleteThemeTransitionにかかる時間のためTask.Delay待つ:

私のオプションがあるように思えます。かなりハッキリに見えます。

2)Storyboardアニメーションを使用してAddDeleteThemeTransitionを模倣しようとしました。私はこれが働いていますが、過労のようです。コンポジションも使用できますが、私の意見ではStoryboardedアニメーションよりもさらに過剰です。

他にも、自分自身を実装している人はいませんでした。Transition(つまり、Transitionクラスを継承しています)。ここでは関係ないかもしれませんが、実現可能なのでしょうか?

+0

AddDeleteThemeTransitionクラスには、変更された値がわからないというプロパティはありません。イベントもなく、いつ終了するのか分からないようです。 –

答えて

1

サポートされているSDKをお持ちの場合は、Compositionを使用するのが実際には最高です。あなたが使用したいのは、あなたの要素やItemsPanelに定義された暗黙的なアニメーションです。アニメーションが終了したときにそれを伝える適切な方法がないためです。

ElementCompositionPreview.SetImplicitShowAnimationElementCompositionPreview.SetImplicitHideAnimationサポートは、あなたがビジュアルツリーに追加/削除するために暗黙の組成アニメーションを設定することができること - と他のキャンセル1つのアニメーションの踏み問題を回避し、ストーリーボードを使用するよりも効率的です。

また、クラス自身が公開しているものは何もないため、独自の「遷移」を実装することはできませんが、今はコンポジションアニメーションを使用する必要はありません。

関連する問題