Freigeben über


Gewusst wie: Reduzieren von Grafikflimmern mit doppelter Pufferung für Formulare und Steuerelemente

Bei der doppelten Pufferung werden Flimmerprobleme, die durch mehrere Zeichenoperationen entstehen, mithilfe eines Arbeitsspeicherpuffers behoben. Wenn die doppelte Pufferung aktiviert ist, werden alle Zeichenoperationen anstelle der Zeichenoberfläche auf dem Bildschirm zunächst in einen Arbeitsspeicherpuffer gerendert. Nachdem alle Zeichenoperationen abgeschlossen sind, wird der Arbeitsspeicherpuffer direkt in die damit verbundene Zeichenoberfläche kopiert. Da auf dem Bildschirm nur ein einzelner Grafikvorgang ausgeführt wird, tritt das bei komplexen Zeichenvorgängen übliche Bildflimmern nicht mehr auf. Bei den meisten Anwendungen bietet die standardmäßige doppelte Pufferung von .NET Framework optimale Ergebnisse. Herkömmliche Windows Forms-Steuerelemente sind standardmäßig doppelt gepuffert. Sie können die standardmäßige doppelte Pufferung in den Formularen und erstellten Steuerelementen auf zwei Weisen aktivieren. Sie können entweder die DoubleBuffered-Eigenschaft auf true festlegen oder die SetStyle-Methode aufrufen, um das OptimizedDoubleBuffer-Flag auf true festzulegen. Mit beiden Methoden wird die standardmäßige doppelte Pufferung für das Formular bzw. Steuerelement eingerichtet und flimmerfreies Grafikrendering ermöglicht. Das Aufrufen der SetStyle-Methode empfiehlt sich nur für benutzerdefinierte Steuerelemente, für die Sie den gesamten Renderingcode geschrieben haben.

Bei anspruchsvolleren Szenarien zur doppelten Pufferung, wie Animationen oder erweitere Speicherverwaltung, können Sie Ihre eigene doppelte Pufferungslogik implementieren. Weitere Informationen finden Sie unter Gewusst wie: Manuelles Verwalten von gepufferten Grafiken.

So reduzieren Sie das Flimmern

  • Legen Sie die DoubleBuffered-Eigenschaft auf true fest.

            DoubleBuffered = True
    
    
    DoubleBuffered = true;
    

- oder -

  • Rufen Sie die SetStyle-Methode auf, um das OptimizedDoubleBuffer-Flag auf true festzulegen.

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

Siehe auch

Referenz

DoubleBuffered

SetStyle

Konzepte

Doppelt gepufferte Grafiken

Weitere Ressourcen

Grafik und Zeichnen in Windows Forms