16

WPFベースのアプリケーションのパフォーマンスを測定しようとしています。現在、コンテンツをWPFレンダリングツリーに追加するのにかかる時間の倍数のコードがあります。この時点で、制御はプログラムに戻ります。問題は、コンテンツがWPFによって画面に表示されるまでにまだ遅延があることです。複雑なレンダリングツリーの場合、これは数秒で済みます。

WPFが画面へのレンダリングをいつ完了したかを判断する方法をお勧めしますか?これらのテストを完全に自動化し、ストップウォッチを持って座っている人に頼らないようにしたいと思います。

[アップデート]

これまでの提案に感謝します。

LoadedイベントとContentRenderedイベントを待ってみましたが、コンテンツが画面に表示される前に両方が起動します。

他の人がこの問題を抱えているようです。http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/693fbedb-efa6-413e-ab66-530c6961d3fb/で提案されている手順を試しました が、コードを強制することができませんでした。レンダリングが完了するのを待ちます。

4

4 に答える 4

13

このソリューションを使用できます: http://www.japf.fr/2009/10/measure-rendering-time-in-a-wpf-application/

于 2011-05-27T08:07:36.973 に答える
4

WPF Performance suiteをご覧になりましたか? パフォーマンスを確認し、問題のあるコードを特定できる場合があります。

于 2011-03-31T18:14:14.273 に答える
1

Window の ContentRendered イベントを使用する必要があります。

これは、完全なレンダリング シーケンスがあるたびに発生し、その時間を計ることができます。

于 2011-03-31T17:29:52.857 に答える
1

Loadedレンダリングが完了した後に発生するため、コントロールのイベントの後にタイマーを終了できます。

于 2011-03-31T18:10:57.363 に答える