當前位置:編程學習大全網 - 源碼下載 - C#在Form中動態顯示gif

C#在Form中動態顯示gif

在DotNET中有壹個ImageAnimator類,動畫處理包含基於時間的幀的圖像,這樣的在C#中就不需要加載壹組圖片了,壹個Gif輕松搞定,程序也幹凈很多。

ImageAnimator類

這個類非常簡單,主要有幾個方法

1)Animator,啟動壹個多幀的圖片,開始動畫顯示。這裏需要制定壹個回調函數onFrameChangedHandler,當圖片內部間隔時間達到時觸發,通常在這個回調函數中刷新界面,顯示下壹幀圖片。特別強調壹點,可能ImageAnimator內部用線呈池的定時器檢查時間間隔,所以該回調函數觸發時,不在程序的主線程中,要註意同步的問題。 2)CanAnimator方法,判斷圖片是否是動畫圖片。

3)StopAnimator方法,比較簡單,就是停止正在運行的動畫。

4)UpdateFrame方法,使該幀在當前正被動畫處理的所有圖像中前移。新幀在下壹次呈現圖像時繪制。如(1)所述onFrameChangedHandler不是在主線程中被觸發,所以利用這個事件調用UpdateFrame時壹定要考慮同步,如果在繪制圖片的同時調用UpdateFrame,或者在調用UpdateFrame時繪制圖片都會產生資源沖突的異常。所以建議UpdateFrame和繪制圖片的動作都在主線程中去執行。

最後還有壹點註意事項:動畫圖片的繪制可能會比較頻繁,由此造成閃爍,解決辦法有兩個:

1)不要調用this.Invalid()重繪整個窗口,而應該調用this.Invalid(rect)僅繪制顯示圖形的區域。

2)指定壹下窗口風格,啟動窗口的雙緩存

源碼:

/s/blog_6e110f480101dul7.html

  • 上一篇:買二手房怎麽砍價
  • 下一篇:BI數據可視化應用:圖表聯動、鉆取分析
  • copyright 2024編程學習大全網