CompositionTarget.Rendering事件是构建游戏主循环的完美之选。它基本上以垂直同步的速率(通常为 60 Hz)触发。
在合成树中的对象被渲染之前发生。在将动画和布局应用到合成树之后,Rendering 事件被路由到指定的事件处理程序。
每帧动画操作方法文章解释了更多。
请注意,您的事件处理程序方法是在计算布局后调用的。但是,您可以在事件处理程序方法中修改布局,这意味着在渲染之前将再次计算布局。
基于此,其处理程序内的代码规则是:
- 避免改变布局
- 快速返回
还有哪些其他问题?哪些不明显的动作会导致另一个布局传递?我在处理程序中究竟有多少时间?