Jak snížit blikání grafiky dvojitým bufferováním pro formuláře a ovládací prvky
Dvojité vyrovnávání používá vyrovnávací paměť k řešení problémů s blikáním spojených s vícenásobnými operacemi malování. 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 operací malování se vyrovnávací paměť zkopíruje přímo na plochu výkresu, která je k ní přidružená. 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 true
nebo 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é
- DoubleBuffered
- SetStyle
- grafika s dvojitou vyrovnávací pamětí
- Grafika a kreslení ve Windows Forms
.NET Desktop feedback