方法 | 优点 | 弊端 | 什么时候使用合适?(建议) | 什么时候最好不要使用(建议) |
DispatcherTimer |
相对稳定
| 最小识别率约15毫秒(个人理解为频率过快将导致跳帧或无效,即极限为15豪秒) | 缓慢移动的物体,联合Storyboard一同控制动画 | 在处理一个移动非常快的物体对象时,建议使用Storyboard as Trigger或CompositionTarget.Rendering提高帧速率。 |
Storyboard | 平滑的动画 | 没有复杂的运动效果,例如行星、游戏等的无规则Path运动(这结论也太…… ^^||) | 简单的移动模式方面 | 如果想通过更多的后台代码去控制动画,建议还是使用CompositionTarget.Rendering。(这建议真的很晕……) |
Thread | 基于线程,均衡的每帧运行。在多核中效果更好 | 在很短的间隔内不稳定(2帧间) | 需要大量计算,耗CPU的处理 | 如果你的电脑只有1个CPU,或者需要更快的动画效果,还是请选择其他的方法 |
CompositionTarget.Rendering | 非常稳定,保证会运行到位 | 无法进行细节控制,因为频率是固定的,基于画面刷新触发,公式:1000/<frames-per-secspecified- in-html> [msec] | 复杂的逻辑,如游戏中的一些循环等逻辑(原话看得不是很懂……) | 一些琐碎的处理,例如游戏中的云朵从左飘到右,则建议使用Storyboard代替。 |
Storyboard as Trigger | 类似DispatcherTimer,在300FPS下运行流畅 | 和DispatcherTimer一样 | 类似DispatcherTimer | 和DispatcherTimer一样 |
SilverLight五种动画处理比较
最新推荐文章于 2025-06-07 04:22:44 发布