Gewusst wie: Manuelles Rendern von gepufferten Grafiken

Wenn Sie Ihre eigenen gepufferten Grafiken verwalten, müssen Sie in der Lage sein, Grafikpuffer zu erstellen und zu rendern. Sie können Instanzen der BufferedGraphics-Klasse erstellen, die mit der Darstellung von Oberflächen auf dem Bildschirm verknüpft ist, indem Sie Allocate aufrufen. Mit dieser Methode wird eine BufferedGraphics-Instanz erstellt, die mit einer bestimmten Darstellungsoberfläche verknüpft ist, beispielsweise ein Formular oder ein Steuerelement. Nachdem Sie eine BufferedGraphics-Instanz erstellt haben, können Sie mit der Graphics-Eigenschaft Grafiken in den entsprechenden Puffer zeichnen. 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.

Tipp

Wenn Sie Ihr eigenes Rendering ausführen, nimmt der beanspruchte Speicherplatz zu, wenn auch in geringem Umfang.

So zeigen Sie gepufferte Grafiken manuell an

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

  2. Erstellen Sie eine Instanz der BufferedGraphics-Klasse, indem Sie die Allocate-Methode aufrufen. Dies wird im folgenden Codebeispiel dargestellt.

            ' 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)
    
    
    // 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);
    
  3. Zeichnen Sie Grafiken in den Grafikpuffer, indem Sie die Graphics-Eigenschaft festlegen. Beispiel:

    ' Draws an ellipse to the graphics buffer.
    myBuffer.Graphics.DrawEllipse(Pens.Blue, Me.DisplayRectangle)
    
    // Draws an ellipse to the graphics buffer.
    myBuffer.Graphics.DrawEllipse(Pens.Blue, this.DisplayRectangle);
    
  4. Nachdem Sie alle gewünschten Grafiken in den Grafikpuffer gezeichnet haben, rufen Sie die Render-Methode auf, um den Puffer auf der mit diesem Puffer verknüpften Zeichenoberfläche oder einer angegebenen Zeichenoberfläche zu rendern, wie im folgenden Codebeispiel dargestellt.

    ' 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)
    
    // 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());
    
  5. Wenn die Grafiken gerendert wurden, rufen Sie die Dispose-Methode für die BufferedGraphics-Instanz auf, um Systemressourcen freizugeben.

    myBuffer.Dispose()
    
    myBuffer.Dispose();
    

Siehe auch

Aufgaben

Gewusst wie: Manuelles Verwalten von gepufferten Grafiken

Referenz

BufferedGraphicsContext

BufferedGraphics

Konzepte

Doppelt gepufferte Grafiken