Sdílet prostřednictvím


Jak snížit blikání grafiky dvojitým bufferováním pro formuláře a ovládací prvky

Dvojité bufferování používá vyrovnávací paměť k řešení problémů s blikáním spojených s několika operacemi kreslení. Pokud je povoleno dvojité ukládání do vyrovnávací paměti, všechny operace malování se nejprve vykreslují do vyrovnávací paměti místo plochy kreslení na obrazovce. Po dokončení všech malovacích operací je paměťový buffer přímo zkopírován na výkresovou plochu, která k němu náleží. Vzhledem k tomu, že na obrazovce se provádí pouze jedna grafická operace, eliminuje se blikající obrázek přidružený ke složitým operacím malování. U většiny aplikací poskytuje výchozí dvojité ukládání do vyrovnávací paměti poskytované rozhraním .NET Framework nejlepší výsledky. Standardní ovládací prvky Windows Forms se standardně ukládají do vyrovnávací paměti. Výchozí dvojité ukládání do vyrovnávací paměti můžete povolit ve formulářích a vytvořených ovládacích prvcích dvěma způsoby. Vlastnost DoubleBuffered můžete nastavit na truenebo můžete volat metodu SetStyle, která nastaví příznak OptimizedDoubleBuffer na true. Obě metody povolí výchozí dvojité ukládání do vyrovnávací paměti pro formulář nebo ovládací prvek a poskytují vykreslování grafiky bez blikání. Volání metody SetStyle se doporučuje pouze pro vlastní ovládací prvky, pro které jste napsali veškerý kód vykreslování.

Pro pokročilejší scénáře dvojité vyrovnávací paměti, jako je animace nebo pokročilá správa paměti, můžete implementovat vlastní logiku dvojité vyrovnávací paměti. Další informace naleznete v tématu Jak ručně spravovat pufrovanou grafiku.

Omezení blikání

  • Nastavte vlastnost DoubleBuffered na true.

    DoubleBuffered = true;
    
    DoubleBuffered = True
    
    

- nebo -

  • Voláním metody SetStyle nastavte příznak OptimizedDoubleBuffer na true.

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

Viz také