Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Flackern ist ein häufiges Problem beim Programmieren von Grafiken. Grafikvorgänge, die mehrere komplexe Malvorgänge erfordern, können dazu führen, dass die gerenderten Bilder flimmern oder ein anderweitig inakzeptables Erscheinungsbild aufweisen. Um diese Probleme zu beheben, bietet .NET Framework Zugriff auf doppelte Pufferung.
Bei der doppelten Pufferung wird ein Speicherpuffer verwendet, um die Flackerprobleme im Zusammenhang mit mehreren Lackiervorgängen zu beheben. Wenn die doppelte Pufferung aktiviert ist, werden alle Zeichenoperationen anstelle der Zeichenoberfläche auf dem Bildschirm zunächst in einen Arbeitsspeicherpuffer gerendert. Nachdem alle Malarbeiten abgeschlossen sind, wird der Speicherpuffer direkt auf die damit verknüpfte Zeichnungsoberfläche kopiert. Da nur ein Grafikvorgang auf dem Bildschirm ausgeführt wird, wird das Bildflimmern, das mit komplexen Malvorgängen verbunden ist, eliminiert.
Standard-Doppelpufferung
Die einfachste Möglichkeit zum Verwenden der doppelten Pufferung in Ihren Anwendungen besteht darin, die standardmäßige doppelte Pufferung für Formulare und Steuerelemente zu verwenden, die von .NET Framework bereitgestellt werden. Sie können die Standard-Doppelpufferung für Windows Forms und erstellte Windows-Steuerelemente aktivieren, indem Sie die DoubleBuffered-Eigenschaft auf true setzen oder die SetStyle-Methode verwenden. Weitere Informationen finden Sie unter So reduzieren Sie Grafikflimmern mit Doppelpufferung bei Formularen und Steuerelementen.
Manuelles Verwalten von gepufferten Grafiken
Für komplexere Szenarien mit doppelter Pufferung, z. B. Animation oder erweiterte Speicherverwaltung, können Sie die .NET Framework-Klassen verwenden, um Ihre eigene Doppelpufferlogik zu implementieren. Die Klasse, die für das Zuordnen und Verwalten einzelner Grafikpuffer verantwortlich ist, ist die BufferedGraphicsContext Klasse. Jede Anwendungsdomäne verfügt über eine eigene Standardinstanz BufferedGraphicsContext, die das gesamte doppelte Puffern für diese Anwendung verwaltet. In den meisten Fällen gibt es nur eine Anwendungsdomäne pro Anwendung, daher gibt es in der Regel eine Standardeinstellung BufferedGraphicsContext pro Anwendung. Standardinstanzen BufferedGraphicsContext werden von der BufferedGraphicsManager Klasse verwaltet. Sie können einen Verweis auf die Standardinstanz BufferedGraphicsContext abrufen, indem Sie Current aufrufen. Sie können auch eine dedizierte BufferedGraphicsContext Instanz erstellen, die die Leistung für grafisch intensive Anwendungen verbessern kann. Informationen zum Erstellen einer BufferedGraphicsContext Instanz finden Sie unter How to: Manually Manage Buffered Graphics.
Manuelles Anzeigen von gepufferten Grafiken
Sie können eine Instanz der BufferedGraphicsContext Klasse verwenden, um Grafikpuffer zu erstellen, indem Sie die BufferedGraphicsContext.AllocateKlasse aufrufen, die eine Instanz der BufferedGraphics Klasse zurückgibt. Ein BufferedGraphics Objekt verwaltet einen Speicherpuffer, der einer Renderingoberfläche zugeordnet ist, z. B. einem Formular oder Steuerelement.
Nach der Instanziierung verwaltet die Klasse das BufferedGraphics Rendern in einem Grafikspeicherpuffer. Sie können Grafiken über den GraphicsSpeicherpuffer rendern, wodurch ein Graphics Objekt verfügbar gemacht wird, das den Speicherpuffer direkt darstellt. Sie können auf dieses Graphics Objekt genauso malen, wie Sie auch auf ein Graphics Objekt malen würden, das eine Zeichenfläche darstellt. Nachdem alle Grafiken in den Puffer gezeichnet wurden, können Sie mithilfe von BufferedGraphics.Render den Inhalt des Puffers auf die Zeichenoberfläche auf dem Bildschirm kopieren.
Weitere Informationen zur Verwendung der BufferedGraphics Klasse finden Sie unter Manuelles Rendern gepufferter Grafiken. Weitere Informationen zum Rendern von Grafiken finden Sie unter "Grafiken und Zeichnen" in Windows Forms.
Siehe auch
- BufferedGraphics
- BufferedGraphicsContext
- BufferedGraphicsManager
- Vorgehensweise: Manuelles Rendern gepufferter Grafiken
- So reduzieren Sie das Flackern von Grafiken mit Doppelpufferung für Formulare und Steuerelemente
- So verwalten Sie manuell gepufferte Grafiken
- Grafiken und Zeichnen in Windows Forms
.NET Desktop feedback