2011-01-25 23 views
1

我需要为MapPolyLine设置动画效果,以便在给定事件中,起始引脚拉至结束引脚。我所考虑的方法是对框架进行动画处理,以便将MapPolyLine划分为n个分段,并沿着我的选择逻辑减少每个框架之间的TimeSpan ts(为了简单起见,让我们在每个之后说ts = ts/2周期)。在Silverlight中“动画”MapPolyLine

我知道不能为MapPolyLine设置动画,但可以通过更新结束位置的经度和纬度来更改线条的外观。我的问题涉及时间。我的多线程经验很少,所以我不想冒用户遇到可能难以诊断的基于线程的错误的风险。我应该:

  • 使用简单DispatcherTimer和刻度方法
  • 使用一个BackgroundWorker该报告进度的每次入库时间已经过去
  • 使用虚拟动画和附加一个事件处理程序的渲染事件
  • 解决方案除了上述选项?

预先感谢您的帮助!

+0

我应该补充说,目前,我倾向于使用Mike Snow的这篇文章中的虚拟动画:http://bit.ly/fFQGxW – Jordan 2011-01-26 02:49:11

回答

0

决定使用DispatcherTimer考虑动画将要采取的时间 - 通过创建一个单独的动画对象来保存状态和它自己的调度计时器,它最终比使用单独的线程更有效,因为回调会意味着中断了主UI线程,并且根据要求,这些动画同时出现超过2-3个的可能性不大,95%或更高的动画一次只能有1个动画。