|
|
1
1
您是否假设呈现事件以恒定速率触发?这并不能保证。在我的机器上,它通常每秒发射60次,但有时会快一点,有时会明显慢一点。有时它似乎会跳过一个帧,这可能会导致动画不平滑。 但是,事件提供了信息来确定从上一帧开始到底有多长时间(尽管您必须知道如何获取它),并且您可以对动画进行编码以考虑到这一点。如果距离上一帧的时间更长,则移动得更远,等等。 您需要获取传递给事件处理程序的EventArgs,并将其强制转换为 RenderingEventArgs ,然后阅读 RenderingTime 财产。计算自上一个事件以来的渲染时间增量;这将告诉您自上一帧显示以来已经有多长时间了,您可以使用它来调整动画的速度。
我听说,至少在WPF中,rendertime不会告诉你当前的时间,而是告诉你当画面显示在屏幕上时,它将是什么时间。我还没有看到官方消息证实这一点,即使这是真的,我也不知道Silverlight是否也是真的。但是不管是什么情况,它都会给你最好的信息来写你的动画。 |
|
|
2
0
在渲染事件中,您执行了多少处理?作为一个选项,您可以将场景的一部分渲染为可写位图,并且只使用渲染事件交换位图。 |
|
|
Bigeyes · 如何在MVVM模式中添加行? 9 年前 |
|
|
User9898 · 悬停回到原始颜色时为什么选择 10 年前 |
|
|
user3112242 · 在Silverlight中打印。缺少一些页面 10 年前 |
|
|
Huma Ali · WCF已完成事件中的异常处理 10 年前 |
|
|
Nerd in Training · 文件副本发布错误 11 年前 |