我正在尝试衡量基于WPF的应用程序的性能。目前,我们的代码可以计算将内容添加到WPF渲染树所需的时间。此时,控制权返回给我们的程序。问题是WPF在屏幕上显示内容之前仍然存在滞后。对于复杂的渲染树,这可能只需几秒钟。
您能推荐一种方法来确定WPF何时完成渲染到屏幕?我希望这些测试完全自动化,而不是依赖坐在秒表旁的人。
[更新]
感谢到目前为止的建议。
我已经尝试等待Loaded和ContentRendered事件,但是在内容进入屏幕之前都会触发。
看起来其他人遇到了这个问题。我已经尝试了建议的步骤 http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/693fbedb-efa6-413e-ab66-530c6961d3fb/但仍然无法强制我的代码等待渲染完成。
答案 0 :(得分:11)
答案 1 :(得分:4)
你看过the WPF Performance suite了吗?您可能能够看到性能并查明有问题的代码。
答案 2 :(得分:1)
您应该使用Window的事件ContentRendered。
每次有完整的渲染序列时都会触发,你可以计时。
答案 3 :(得分:1)
您可以在控件的Loaded
事件之后结束计时器,因为在渲染完成后会发生这种情况。