Condividi tramite


Procedura: Eseguire manualmente il rendering della grafica memorizzata nel buffer

Se stai gestendo la tua grafica bufferizzata, avrai bisogno di poter creare e renderizzare i buffer grafici. È possibile creare istanze della classe BufferedGraphics associata alle superfici di disegno sullo schermo chiamando il metodo Allocate. Questo metodo crea un'istanza di BufferedGraphics associata a una superficie di rendering specifica, come un form o un controllo. Dopo aver creato un'istanza di BufferedGraphics, è possibile disegnare elementi grafici nel buffer rappresentato tramite la proprietà Graphics. Dopo aver eseguito tutte le operazioni grafiche, è possibile copiare il contenuto del buffer sullo schermo chiamando il metodo Render.

Nota

Se si esegue il rendering personalizzato, il consumo di memoria aumenterà, anche se l'aumento potrebbe essere solo leggero.

Per visualizzare manualmente elementi grafici memorizzati nel buffer

  1. Ottenere un riferimento a un'istanza della classe BufferedGraphicsContext. Per altre informazioni, vedere Procedura: Gestire manualmente la grafica memorizzata nel buffer.

  2. Creare un'istanza della classe BufferedGraphics chiamando il metodo Allocate, come illustrato nell'esempio di codice seguente.

    // 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. Disegnare elementi grafici nel buffer grafico impostando la proprietà Graphics. Per esempio:

    // 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. Dopo aver completato tutte le operazioni di disegno nel buffer grafico, chiamare il metodo Render per eseguire il rendering del buffer, sulla superficie di disegno associata a tale buffer o su una superficie di disegno specificata, come illustrato nell'esempio di codice seguente.

    // 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. Al termine del rendering della grafica, chiamare il metodo Dispose nell'istanza di BufferedGraphics per liberare le risorse di sistema.

    myBuffer.Dispose();
    
    myBuffer.Dispose()
    

Vedere anche