私は、メインウィンドウ上のストーリーボードの対でアニメーションされるユーザーコントロールを含む単純なWPFアプリケーションを持っています。私はユーザーコントロールの不透明度、scaletransform.scalex、scaletransform.scaleyをアニメーション化して、ポップで表示します。それは最初に実行される以外は涼しく見えます。アニメーションは3/10秒かかると設定されていますが、テスト中にこれを増やしました。私は、アニメーション化しているプロパティの値が期待どおりにデフォルトにならないという問題があるかどうかを確認するために、デフォルト値を数秒で設定しようとしました。それは何もしなかった。私は明示的に私のデフォルトの値を設定するのに役立つかどうかを確認するためにロードされたウィンドウ上で私の "非表示"アニメーションを呼び出すが、それも動作しませんでした。アニメーションを初めて起動するときにランタイムが実行している初期化はありますか? UIを表示する前に、そのような初期化を明示的に呼び出す方法はありますか?症状は、コントロールが最初のアニメーションに約2/10秒まで表示されないことです。場合によってはそれが長くなり、完全にアニメーション化された後にコントロールが表示されます(不透明度とサイズは最終的に表示される最終値です)。WPFアニメーションの最初の実行
答えて
アニメーションの前にUserControlのDataContextを設定しているようです。おそらく、ビジュアルオブジェクトを作成してアニメーションが開始されると同時にビジュアルツリーに追加するというバインディングがあると考えられます。これには、アニメーションが戦っている処理が必要です。これを回避する方法は、(DataContextを設定して)コントロールをインスタンス化することですが、非表示にすることで、ビジュアルオブジェクトの作成をアニメーションの時点で実行する必要はありません。 (私の同僚のTim Lee経由)
さて、あなたは絶対に正しいです...これは私の最初の勘違いでした。しかし、ランタイムはそれが自分のために余りにも賢明にしようとしています。ビュー(不透明度、負のマージン、scaletransform、translatetransform)からそれを隠す方法を試すと、同じことが行われます。私はそれを見ることができれば、私は最初にDataContextを設定する必要はありません...最初のアニメーションはスムーズに行く。ほとんどの場合、ランタイムを実際には表示できないと思うようにトリックする必要があります。つまり、私はそれを明示的に指示してビジュアルツリーを構築する方法を知る必要があります。後者はハッキリしていないと感じます。 – Rich
このスレッドは古代のものだと私は理解していますが、どのようにしてこの問題を解決しましたか?それぞれのコントロールを1の幅に設定しても効果がありませんでした。私はWPFには比較的新しいので、ここでは線の間に隠された手がかりはありませんでした。 – Harti
- 1. jQuery.animate()が最初のアニメーションを正常に実行しません。
- 2. アプリの最初の実行
- 3. WPFアニメーションの最適化
- 4. jQueryアニメーション - 最初の実行後に一貫性がありません
- 5. 最初の実行時にjqueryアニメーションが正しく動作しません
- 6. バッチファイルの実行のみ最初のコマンド
- 7. Railsの最初の実行エラー
- 8. Androidのアニメーションが遅れて、最初のアニメーションが全長で実行されない
- 9. エアアプリケーションの最初の実行時に関数を実行
- 10. Django south:最初のマイグレーションを再実行
- 11. 最初のコンテンツがアクティブなアニメーションのタブ
- 12. WPF DataGrid:最初の行の選択をデフォルトでキャンセルします。
- 13. 最初のWPFタブストップの位置付け
- 14. mavenタスクを最初に実行する
- 15. WPFのDataTriggerアニメーション
- 16. Jqueryでのアニメーション、ステップバイステップ実行
- 17. HTML5のスプラッシュページまたはindex.htmlの最初のページのアニメーションを行う方法
- 18. バットスクリプトは最初の行だけを実行しますか?
- 19. WPFアニメーションの再トリガー
- 20. WPFのアニメーション用ツール
- 21. Wpf Datagrid最大行
- 22. 最初の実行時にViewPagerのフラグメントのプレビューを
- 23. 私の最初のプログラムの作成と実行
- 24. 私の最初のアンドロイドプログラムを実行する際の問題
- 25. fgetcsv():最初の行をキー
- 26. TTntComboBox空白最初の行
- 27. 更新最初の行
- 28. キュウリの最初のシナリオを直接実行する方法
- 29. cakephpで最初のプログラムを実行するための設定
- 30. Android Studioを使用した最初のアプリの実行中
最初のアニメーションはどのようにトリガーされますか?また、説明した症状から、不透明度がスケール変換後に異なるレートで変化しているように見えます。 – rmoore
すべてのアニメーションがマウスクリックによって開始されるため、最初のアニメーションがトリガーされています。私はコードの中でこれを行うので、必要に応じてイベントを処理済みとしてマークすることができます。不透明度は他のすべてのアニメーションでもうまく機能します。基本的には、最初のアニメーションと他のアニメーションの間にコードに違いはありません。私が思っていたのは、WPFランタイムが何かを最適化している(私のコントロールがデフォルトでScaleTransformとOpacityによって隠されています)、これが私がいくつかの自動メモリ最適化などのために支払った価格です。 – Rich
WPFランタイムが「ああ、このコントロールはScaleTransformsとOpacityが0なのですぐに見ることができません。後でこれを動的にロードしてください」と期待している間にキャッチアップを再生します。自身を視野に入れてアニメーション化する。 – Rich