Sdílet prostřednictvím


Postupy: Omezení blikání grafiky dvojitým uložením do vyrovnávací paměti pro formuláře a ovládací prvky

Dvojité ukládání do vyrovnávací paměti používá vyrovnávací paměť k řešení problémů s blikáním spojených s několika 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 model Windows Forms jsou ve výchozím nastavení ve výchozím nastavení dvojité 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. Můžete buď nastavit vlastnost na true, nebo můžete volat metodu SetStyleOptimizedDoubleBuffer nastavit příznak na true.DoubleBuffered 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í. SetStyle Volání metody 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 Postupy: Ruční správa grafiky ve vyrovnávací paměti.

Omezení blikání

  • Nastavte vlastnost DoubleBuffered na true.

    DoubleBuffered = true;
    
    DoubleBuffered = True
    
    

- nebo -

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

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

Viz také