作法:使用表單和控制項的雙重緩衝以減少圖形閃爍

雙重緩衝會使用記憶體緩衝區來解決多個與繪製作業建立關聯的閃爍問題。 啟用雙重緩衝時,會將所有繪製作業都轉譯到記憶體緩衝區,而不是螢幕上的繪圖介面。 在所有繪製作業都完成之後,會直接將記憶體緩衝區複製到與其建立關聯的繪圖介面。 因為在螢幕上只會執行一個圖形作業,所以會消除與複雜繪製作業相關聯的影像閃爍。在大部分的應用程式中,.NET Framework 提供的預設雙重緩衝會提供最佳結果。 標準 Windows Forms 控制項預設會進行雙重緩衝處理。 您可以透過兩種方式,在表單和撰寫的控制項中啟用預設的雙重緩衝。 您可以將屬性設定 DoubleBufferedtrue ,也可以呼叫 SetStyle 方法將旗標設定 OptimizedDoubleBuffertrue 。 這兩種方法都會啟用表單或控制項的預設雙重緩衝處理,並提供無閃爍的圖形呈現。 SetStyle建議您只針對已撰寫所有轉譯程式碼的自訂控制項,呼叫方法。

如需更先進的雙重緩衝處理案例,例如動畫或高階記憶體管理,您可以執行自己的雙重緩衝邏輯。 如需詳細資訊,請參閱 如何:手動管理已緩衝的圖形

減少閃爍

  • DoubleBuffered 屬性設為 true

    DoubleBuffered = true;
    
    DoubleBuffered = True
    
    

- 或 -

  • SetStyle呼叫方法,將旗標設定 OptimizedDoubleBuffertrue

    SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
    
    SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
    
    

另請參閱