Freigeben über


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