2017-11-28 2 views
0

アニメーション値を変更するたびにコードを実行する方法が必要です。このコードは、コントロールが描画される前にアニメーション化されているコントロールの 'new'レイアウトにアクセスします。アニメーション中に各値の更新後にコードを実行するWPFアニメーションを作成する

たとえば、ストーリーボードでアニメーション化された「長さ」依存プロパティがあります。これは、userControl、Aの長さと高さの両方をバインディングで更新します。アニメーション中に、各値がLengthに更新された後、別のuserControlの内容を変更するメソッドを実行したいと思います。このメソッドは、userControl Aの新しいレイアウトのサイズにアクセスできる必要がありますAが視覚的に描画されるので、レンダリングが最終的に行われるときに、AとBの両方がユーザの視点から一緒に変化する。私は、長さdependencyPropertyのPropertyChangedCallbackを使用しようとしましたが、コントロールが最初に(短く)ユーザーと同期していないように見えるので、これは遅すぎるようです。理想的にはそれはのようになります。計算され

  • がどこかのUserControl Aので、新しい寸法にUpdateLayoutを呼び出す

    • セット長依存関係プロパティの値を
    • 私の方法はあるのUserControl Aが
    • ユーザーコントロールBレンダリングされる前に呼び出されます
    • を変更し、最後にすべてが私のリテラルの問題はずっとMORである

    をスクリーニングするためにレンダリングされますe複雑なので、私はコードを提供しません。これは私が解決したいと思う正確な問題ですので、私は代わりにアイディアを探しています。

  • +0

    私が経験したことで、プログラムでこれを行う必要があったとしても、コントロールBをストーリーボードに含める方が簡単だと思います。 –

    +0

    それは私の問題を解決しません。ユーザーコントロールBを制御するメソッドは、Aが表示される前にユーザーコントロールAの新しい測定値にアクセスする必要があります。デュアルアニメーションストーリーボードではできません。これは詐欺的なトリッキーな問題です – Sean

    答えて

    0

    答えは、PropertyChangedCallbackイベントの代わりにSizeChangedイベントを使うことでした。 SizeChangedでは、私は古いものと新しいものの両方を持っていますが、それはまだ描かれていません。完璧。

    関連する問題