Partager via


Graphics.EndContainer(GraphicsContainer) Méthode

Définition

Ferme le conteneur graphique actuel et restaure l’état de cette Graphics à 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 que cette méthode restaure.

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 gestionnaire d’événements Paint. 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 les nouvelles coordonnées (traduites du nouveau conteneur).

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

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

Le résultat est un rectangle vert qui dépasse 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 méthode BeginContainer pour créer des conteneurs graphiques imbriqués. Les conteneurs graphiques conservent l’état graphique, comme la transformation, la région de découpage et les propriétés de rendu.

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

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

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

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

S’applique à