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 classe BufferedGraphics associées aux surfaces de dessin sur votre écran en appelant la méthode Allocate. Cette méthode crée une instance BufferedGraphics associée à une surface de rendu particulière, telle qu’un formulaire ou un contrôle. Une fois que vous avez créé une instance BufferedGraphics, vous pouvez dessiner des graphiques dans la mémoire tampon qu’il représente via la propriété Graphics. 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 méthode Render.
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
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.
Créez une instance de la classe BufferedGraphics en appelant la méthode Allocate, 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)
Dessinez des graphiques dans la mémoire tampon graphique 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)
Lorsque vous avez terminé toutes vos opérations de dessin vers la mémoire tampon graphique, appelez la méthode Render 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)
Une fois que vous avez terminé le rendu des graphiques, appelez la méthode
Dispose
sur l’instance BufferedGraphics pour libérer des ressources système.myBuffer.Dispose();
myBuffer.Dispose()
Voir aussi
.NET Desktop feedback