2010-03-16 86 views
0

我需要「動畫」一個箭頭。它可以沿任何方向(向上,向下,向左,向右和對角線)行進,並且箭頭將在最後。它需要看起來好像是從開始到結束。 爲了使事情更復雜,它必須在用戶控件中,所以可以添加到窗體中的控件集合中,並將它從屏幕上刪除,並且它的背景真的是透明的(沒有color.transparent),所以我不能畫背景來「清除」前一行。 我已經靜態(從原點到結束),但我不能動畫它。我試圖在用戶控件中添加一個計時器,但是我無法獲得正確的算法來計算行增長時的中間結束。 任何幫助,將不勝感激。 謝謝使用箭頭動畫一個e.Graphics.DrawLine

回答

0

在Windows窗體上使用動畫時,您必須使用另一個線程。看看使用後臺工作者:http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx

+0

如果你不想使用後臺工作者,我認爲你可以使用圖片框,然後換出圖片。我個人會使用後臺工作者。 – Icono123 2010-03-16 12:56:53

+0

我的問題是如何「動畫」行不在哪裏發生。我的意思是,我打算在單獨的線程中完成它,但我無法找到一種使線條顯得越來越大的方法。我現在找到了一種方法,逐點繪製。 謝謝 – Fer 2010-03-16 22:59:00

+0

你不需要使用單獨的線程。多線程代碼很複雜並且不必要 - 請參閱我的答案。 – GarethOwen 2010-11-11 12:21:40

0

你不需要另一個線程 - 我已經成功實現了Windows窗體動畫。

我的設計:

  • 使用Windows.System.Forms.Timer對象定期調用回調函數「動畫()」
  • 的動畫()函數更新您的箭頭的屬性,然後在窗口控件上調用Invalidate(),這一切都發生在同一個UI線程中,所以yuo不會得到任何閃爍效果(只要你的控件打開了兩次duffering)。