Partager via


Comment : restituer manuellement des graphiques mis en mémoire tampon

Si vous gérez vos propres graphismes mis en mémoire tampon, vous devez pouvoir créer et restituer des mémoires tampon de graphiques. Vous pouvez créer des instances de la classe BufferedGraphics associée aux surfaces de dessin sur votre écran en appelant la méthode Allocate. Cette méthode crée une instance de BufferedGraphics associée à une surface de rendu particulière, comme un formulaire ou un contrôle. Après avoir créé une instance de BufferedGraphics, vous pouvez dessiner des graphismes dans la mémoire tampon qu'elle représente par le biais de la propriété Graphics. Après avoir effectué toutes les opérations graphiques, vous pouvez copier le contenu de la mémoire tampon à l'écran en appelant la méthode Render.

Remarque

Si vous effectuez votre propre rendu, la consommation de mémoire augmentera, bien que cette augmentation puisse être très légère.

Pour afficher manuellement des graphismes mis en mémoire tampon

  1. Obtenez une référence à une instance de la classe BufferedGraphicsContext. 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 classe BufferedGraphics en appelant la méthode Allocate, comme indiqué 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 graphismes dans la mémoire tampon de graphiques en définissant la propriété Graphics. 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. Quand vous avez terminé toutes vos opérations de dessin dans la mémoire tampon de graphiques, appelez la méthode Render pour restituer la mémoire tampon, soit sur la surface de dessin associée à cette mémoire tampon, soit sur 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. Quand vous avez terminé d'afficher les graphismes, appelez la méthode Dispose sur l'instance de BufferedGraphics pour libérer les ressources système.

    myBuffer.Dispose();
    
    myBuffer.Dispose()
    

Voir aussi