2011-01-25 24 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個動畫。