Partager via


Guide pratique pour restituer manuellement des graphiques mis en mémoire tampon

Si vous gérez vos propres graphiques mis en mémoire tampon, vous devez pouvoir créer et afficher des mémoires tampons graphiques. Vous pouvez créer des instances de la BufferedGraphics classe associée à des surfaces de dessin sur votre écran en appelant la Allocate méthode. Cette méthode crée une BufferedGraphics instance associée à une surface de rendu particulière, telle qu’un formulaire ou un contrôle. Une fois que vous avez créé une BufferedGraphics instance, vous pouvez dessiner des graphiques dans la mémoire tampon qu’il représente via la Graphics propriété. Une fois que vous avez effectué toutes les opérations graphiques, vous pouvez copier le contenu de la mémoire tampon sur l’écran en appelant la Render méthode.

Remarque

Si vous effectuez votre propre rendu, la consommation de mémoire augmente, bien que l’augmentation ne soit que légère.

Pour afficher manuellement des graphiques mis en mémoire tampon

  1. Obtenez une référence à une instance de la BufferedGraphicsContext classe. Pour plus d’informations, consultez Guide pratique pour gérer manuellement les graphiques mis en mémoire tampon.

  2. Créez une instance de la BufferedGraphics classe en appelant la Allocate méthode, comme illustré dans l’exemple de code suivant.

    // 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. Dessinez des graphiques dans la mémoire tampon graphique en définissant la Graphics propriété. Par exemple:

    // 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. Lorsque vous avez terminé toutes vos opérations de dessin vers la mémoire tampon graphique, appelez la Render méthode pour afficher la mémoire tampon, soit à l’aire de dessin associée à cette mémoire tampon, soit à une surface de dessin spécifiée, comme illustré dans l’exemple de code suivant.

    // 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. Une fois que vous avez terminé le rendu des graphiques, appelez la Dispose méthode sur l’instance BufferedGraphics pour libérer des ressources système.

    myBuffer.Dispose();
    
    myBuffer.Dispose()
    

Voir aussi