C# 雙重緩衝

畫面更新時發生閃爍。

我在網路上搜尋到一些解決方法,在這裡做個整理。

正常更新畫面的方法都是先將畫面清空後,再將新的畫面畫上去,

導致清空的剎那,好像畫面閃爍了。

解決方法:

  • 畫面重繪時,不直接在螢幕上重繪,而是先畫在緩衝區,等整個畫面都重繪完成,才一次放到螢幕上。
  • 想像我們用兩張紙來做更新,一張紙是當前畫面,另一張是緩衝區,在更新時把圖畫在第二章紙上,畫完後再一次把這張紙覆蓋到主畫面。

 

1.把DoubleBuffered 屬性設為 true。(參考自MSDN使用表單和控制項的雙重緩衝)

2.使用 BufferedGraphicsContext 。(參考自MSDN手動管理緩衝的圖形)

3.使用Bitmap。(參考自Gary Lin 的 C# 遊戲程式設計)

    較推薦使用這種方式

 

如有錯誤請指證