Graphics.EndContainer(GraphicsContainer) Méthode

Définition

Ferme le conteneur graphique actif et rétablit l'état de ce Graphics sur l'état enregistré par un appel à la méthode BeginContainer().

public:
 void EndContainer(System::Drawing::Drawing2D::GraphicsContainer ^ container);
public void EndContainer (System.Drawing.Drawing2D.GraphicsContainer container);
member this.EndContainer : System.Drawing.Drawing2D.GraphicsContainer -> unit
Public Sub EndContainer (container As GraphicsContainer)

Paramètres

container
GraphicsContainer

GraphicsContainer qui représente le conteneur rétabli par cette méthode.

Exemples

L’exemple de code suivant est conçu pour être utilisé avec Windows Forms et nécessite PaintEventArgse, qui est un paramètre du Paint gestionnaire d’événements. Le code effectue les actions suivantes :

  • Ouvre un nouveau conteneur graphique et enregistre l’ancien conteneur.

  • Traduit les coordonnées du monde dans le conteneur.

  • Remplit un rectangle rouge dans le nouveau conteneur (coordonnées traduites du).

  • Ferme le nouveau conteneur et restaure le conteneur enregistré.

  • Remplit un rectangle vert (aux coordonnées non traduites) du conteneur enregistré.

Le résultat est un rectangle vert qui remplace un rectangle rouge de la même taille.

public:
   void EndContainerState( PaintEventArgs^ e )
   {
      // Begin graphics container.
      GraphicsContainer^ containerState = e->Graphics->BeginContainer();

      // Translate world transformation.
      e->Graphics->TranslateTransform( 100.0F, 100.0F );

      // Fill translated rectangle in container with red.
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Red ), 0, 0, 200, 200 );

      // End graphics container.
      e->Graphics->EndContainer( containerState );

      // Fill untransformed rectangle with green.
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Green ), 0, 0, 200, 200 );
   }
public void EndContainerState(PaintEventArgs e)
{
             
    // Begin graphics container.
    GraphicsContainer containerState = e.Graphics.BeginContainer();
             
    // Translate world transformation.
    e.Graphics.TranslateTransform(100.0F, 100.0F);
             
    // Fill translated rectangle in container with red.
    e.Graphics.FillRectangle(new SolidBrush(Color.Red), 0, 0, 200, 200);
             
    // End graphics container.
    e.Graphics.EndContainer(containerState);
             
    // Fill untransformed rectangle with green.
    e.Graphics.FillRectangle(new SolidBrush(Color.Green), 0, 0, 200, 200);
}
Public Sub EndContainerState(ByVal e As PaintEventArgs)

    ' Begin graphics container.
    Dim containerState As GraphicsContainer = _
    e.Graphics.BeginContainer()

    ' Translate world transformation.
    e.Graphics.TranslateTransform(100.0F, 100.0F)

    ' Fill translated rectangle in container with red.
    e.Graphics.FillRectangle(New SolidBrush(Color.Red), 0, 0, _
    200, 200)

    ' End graphics container.
    e.Graphics.EndContainer(containerState)

    ' Fill untransformed rectangle with green.
    e.Graphics.FillRectangle(New SolidBrush(Color.Green), 0, 0, _
    200, 200)
End Sub

Remarques

Utilisez cette méthode avec la BeginContainer méthode pour créer des conteneurs graphiques imbriqués. Les conteneurs graphiques conservent l’état des graphiques, tels que la transformation, la région de découpage et les propriétés de rendu.

Lorsque vous appelez la BeginContainer méthode d’un Graphics, un bloc d’informations qui contient l’état de Graphics est placé sur une pile. La BeginContainer méthode retourne un GraphicsContainer qui identifie ce bloc d’informations. Lorsque vous passez l’objet d’identification à la EndContainer méthode, le bloc d’informations est supprimé de la pile et est utilisé pour restaurer l’état Graphics dans lequel il se trouvait au moment de l’appel de méthode BeginContainer .

Les conteneurs peuvent être imbriqués ; autrement dit, vous pouvez appeler la BeginContainer méthode plusieurs fois avant d’appeler la EndContainer méthode. Chaque fois que vous appelez la BeginContainer méthode, un bloc d’informations est placé sur la pile et vous recevez un pour le bloc d’informations GraphicsContainer . Lorsque vous passez l’un de ces objets à la méthode, le EndContainerGraphics est retourné à l’état dans lequel il se trouvait au moment de l’appel de méthode BeginContainer qui a retourné ce particulier GraphicsContainer. Le bloc d’informations placé sur la pile par cet BeginContainer appel de méthode est supprimé de la pile, et tous les blocs d’informations placés sur cette pile après cet BeginContainer appel de méthode sont également supprimés.

Les appels à la Save méthode placent des blocs d’informations sur la même pile que les appels à la BeginContainer méthode. Tout comme un appel de EndContainer méthode est associé à un BeginContainer appel de méthode, un Restore appel de méthode est associé à un Save appel de méthode.

Lorsque vous appelez la EndContainer méthode, tous les blocs d’informations placés sur la pile (par la Save méthode ou par la BeginContainer méthode) après la suppression de l’appel correspondant à la BeginContainer méthode de la pile. De même, lorsque vous appelez la Restore méthode, tous les blocs d’informations placés sur la pile (par la Save méthode ou par la BeginContainer méthode) après l’appel correspondant à la Save méthode ont été supprimés de la pile.

S’applique à