Freigeben über


Vorgehensweise: Manuelles Rendern von gepufferten Grafiken

Wenn Sie Ihre eigenen gepufferten Grafiken verwalten, müssen Sie Grafikpuffer erstellen und rendern können. Sie können Instanzen der BufferedGraphics-Klasse erstellen, die mit Zeichenflächen auf dem Bildschirm verknüpft ist. Dazu rufen Sie die Allocate-Methode auf. Diese Methode erstellt eine BufferedGraphics-Instanz, die mit einer bestimmten Darstellungsoberfläche verknüpft ist, beispielsweise mit einem Formular oder Steuerelement. Nachdem Sie eine BufferedGraphics-Instanz erstellt haben, können Sie mit derGraphics-Eigenschaft Grafiken in den Puffer schreiben, dem die Instanz entspricht. Nachdem Sie alle Grafikvorgänge ausgeführt haben, können Sie den Inhalt des Puffers auf den Bildschirm kopieren, indem Sie die Render-Methode aufrufen.

Hinweis

Wenn Sie Ihr eigenes Rendering ausführen, erhöht sich die Arbeitsspeichernutzung, allerdings wahrscheinlich nur geringfügig.

So zeigen Sie gepufferte Grafiken manuell an

  1. Rufen Sie einen Verweis auf eine Instanz der BufferedGraphicsContext-Klasse ab. Weitere Informationen finden Sie unter Manuelles Verwalten von gepufferten Grafiken.

  2. Erstellen Sie eine Instanz der BufferedGraphics-Klasse, indem Sie die Allocate-Methode wie im folgenden Codebeispiel gezeigt aufrufen.

    // This example assumes the existence of a form called Form1.
    BufferedGraphicsContext currentContext;
    BufferedGraphics myBuffer;
    // Gets a reference to the current BufferedGraphicsContext
    currentContext = BufferedGraphicsManager.Current;
    // Creates a BufferedGraphics instance associated with Form1, and with
    // dimensions the same size as the drawing surface of Form1.
    myBuffer = currentContext.Allocate(this.CreateGraphics(),
       this.DisplayRectangle);
    
    ' This example assumes the existence of a form called Form1.
    Dim currentContext As BufferedGraphicsContext
    Dim myBuffer As BufferedGraphics
    ' Gets a reference to the current BufferedGraphicsContext.
    currentContext = BufferedGraphicsManager.Current
    ' Creates a BufferedGraphics instance associated with Form1, and with 
    ' dimensions the same size as the drawing surface of Form1.
    myBuffer = currentContext.Allocate(Me.CreateGraphics, _
       Me.DisplayRectangle)
    
    
  3. Zeichnen Sie Grafiken in den Grafikpuffer, indem Sie die Graphics-Eigenschaft festlegen. Zum Beispiel:

    // Draws an ellipse to the graphics buffer.
    myBuffer.Graphics.DrawEllipse(Pens.Blue, this.DisplayRectangle);
    
    ' Draws an ellipse to the graphics buffer.
    myBuffer.Graphics.DrawEllipse(Pens.Blue, Me.DisplayRectangle)
    
  4. Wenn Sie Ihre Zeichenvorgänge für den Grafikpuffer abgeschlossen haben, rufen Sie die Render-Methode auf, um den Puffer, wie im folgenden Codebeispiel gezeigt, entweder auf der Zeichenfläche, die mit diesem Puffer verknüpft ist, oder auf einer angegebenen Zeichenfläche zu rendern.

    // This example assumes the existence of a BufferedGraphics instance
    // called myBuffer.
    // Renders the contents of the buffer to the drawing surface associated
    // with the buffer.
    myBuffer.Render();
    // Renders the contents of the buffer to the specified drawing surface.
    myBuffer.Render(this.CreateGraphics());
    
    ' Renders the contents of the buffer to the drawing surface associated 
    ' with the buffer.
    myBuffer.Render()
    ' Renders the contents of the buffer to the specified drawing surface.
    myBuffer.Render(Me.CreateGraphics)
    
  5. Wenn Sie das Rendern der Grafiken abgeschlossen haben, rufen Sie die Dispose-Methode für die BufferedGraphics-Instanz auf, um Systemressourcen freizugeben.

    myBuffer.Dispose();
    
    myBuffer.Dispose()
    

Weitere Informationen