So geht's: Gepufferte Grafiken manuell verwalten
Für komplexere Szenarien mit doppelter Pufferung 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 Anwendung verfügt über eine eigene Voreinstellung BufferedGraphicsContext, die das gesamte Standard-Double-Buffering für diese Anwendung verwaltet. Sie können einen Verweis auf diese Instanz abrufen, indem Sie Currentaufrufen.
So rufen Sie einen Verweis auf den standardmäßigen BufferedGraphicsContext ab
Legen Sie die Current-Eigenschaft fest, wie im folgenden Codebeispiel gezeigt.
BufferedGraphicsContext myContext; myContext = BufferedGraphicsManager.Current;
Dim myContext As BufferedGraphicsContext myContext = BufferedGraphicsManager.Current
Anmerkung
Sie müssen die
Dispose
Methode für den BufferedGraphicsContext Verweis, den Sie von der BufferedGraphicsManager Klasse erhalten, nicht aufrufen. Die BufferedGraphicsManager behandelt alle Speicherzuweisungen und -verteilungen für Standardinstanzen BufferedGraphicsContext.Für grafisch intensive Anwendungen wie Animationen können Sie manchmal die Leistung verbessern, indem Sie eine dedizierte BufferedGraphicsContext anstelle der vom BufferedGraphicsManagerbereitgestellten BufferedGraphicsContext verwenden. Auf diese Weise können Sie Grafikpuffer einzeln erstellen und verwalten, ohne den Leistungsaufwand für die Verwaltung aller anderen gepufferten Grafiken Ihrer Anwendung in Kauf zu nehmen, auch wenn der von der Anwendung benötigte Arbeitsspeicher größer ist.
So erstellen Sie einen dedizierten BufferedGraphicsContext
Deklarieren und erstellen Sie eine neue Instanz der BufferedGraphicsContext-Klasse, wie im folgenden Codebeispiel gezeigt.
BufferedGraphicsContext myContext; myContext = new BufferedGraphicsContext(); // Insert code to create graphics here. // On a non-default BufferedGraphicsContext instance, you should always // call Dispose when finished. myContext.Dispose();
Dim myContext As BufferedGraphicsContext myContext = New BufferedGraphicsContext ' Insert code to create graphics here. ' On a nondefault BufferedGraphicsContext instance, you should always ' call Dispose when finished. myContext.Dispose()
Siehe auch
.NET Desktop feedback