c# doubleBuffered

來源:互聯網
上載者:User

如果你在Form中繪圖的話,不論是不是採用的雙緩衝,都會看到圖片在更新的時候都會不斷地閃爍,解決方案就是在這個表單的建構函式中增加以下三行代碼: 
   
   
  請在建構函式裡面底下加上如下幾行: 
  SetStyle(ControlStyles.UserPaint,  true); 
  SetStyle(ControlStyles.AllPaintingInWmPaint,  true);  //  禁止擦除背景. 
  SetStyle(ControlStyles.DoubleBuffer,  true);  //  雙緩衝 
   
  參數說明: 
   
  UserPaint   
  如果為  true,控制項將自行繪製,而不是通過作業系統來繪製。此樣式僅適用於派生自  Control  的類。 
   
  AllPaintingInWmPaint   
  如果為  true,控制項將忽略  WM_ERASEBKGND  視窗訊息以減少閃爍。僅當  UserPaint  位設定為  true  時,才應當應用該樣式。     
   
  DoubleBuffer   
  如果為  true,則繪製在緩衝區中進行,完成後將結果輸出到螢幕上。雙重緩衝區可防止由控制項重繪引起的閃爍。要完全啟用雙重緩衝,還必須將  UserPaint  和  AllPaintingInWmPaint  樣式位設定為  true。   
   
   
  參考資料: 
  如何解決CSharp中動畫閃爍問題? 
  http://search.csdn.net/Expert/topic/1488/1488888.xml 
  C#中雙緩衝繪圖的實現方法。   
  http://blog.joycode.com/ghj/archive/2004/01/03/10543.aspx 
   
  以上你不是在表單上繪圖,需要你自己寫一個控制項,在這個控制項的建構函式上增加上上述三行代碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.