Graphics.EndContainer(GraphicsContainer) Methode

Definition

Schließt den aktuellen Grafikcontainer und stellt den Zustand dieses Graphics wieder her, der durch einen Aufruf der BeginContainer()-Methode gespeichert wurde.

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)

Parameter

container
GraphicsContainer

GraphicsContainer, der den Container darstellt, den diese Methode wiederherstellt.

Beispiele

Das folgende Codebeispiel ist für die Verwendung mit Windows Forms konzipiert und erfordert PaintEventArgse, was ein Parameter des Paint Ereignishandlers ist. Der Code führt die folgenden Aktionen aus:

  • Öffnet einen neuen Grafikcontainer und speichert den alten Container.

  • Übersetzt die Weltkoordinaten im Container.

  • Füllt ein rotes Rechteck in den (übersetzten Koordinaten des) neuen Containers aus.

  • Schließt den neuen Container und stellt den gespeicherten Container wieder her.

  • Füllt ein grünes Rechteck (bis zu den nicht übersetzten Koordinaten) des gespeicherten Containers aus.

Das Ergebnis ist ein grünes Rechteck, das ein rotes Rechteck der gleichen Größe überschreitet.

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

Hinweise

Verwenden Sie diese Methode mit der BeginContainer -Methode, um geschachtelte Grafikcontainer zu erstellen. Grafikcontainer behalten den Grafikzustand bei, z. B. Transformation, Beschneidungsbereich und Renderingeigenschaften.

Wenn Sie die BeginContainer -Methode eines Graphicsaufrufen, wird ein Informationsblock, der den Zustand von Graphics enthält, auf einem Stapel platziert. Die BeginContainer -Methode gibt einen GraphicsContainer zurück, der diesen Informationsblock identifiziert. Wenn Sie das identifizierende Objekt an die EndContainer -Methode übergeben, wird der Informationsblock aus dem Stapel entfernt und verwendet, um den Graphics Zustand wiederherzustellen, in dem er sich zum Zeitpunkt des BeginContainer Methodenaufrufs befand.

Container können geschachtelt werden; Das heißt, Sie können die BeginContainer -Methode mehrmals aufrufen, bevor Sie die EndContainer -Methode aufrufen. Jedes Mal, wenn Sie die BeginContainer -Methode aufrufen, wird ein Informationsblock auf dem Stapel platziert, und Sie erhalten einen GraphicsContainer für den Informationsblock. Wenn Sie eines dieser Objekte an die EndContainer -Methode übergeben, wird in Graphics den Zustand zurückgegeben, in dem es sich zum Zeitpunkt des Methodenaufrufs befand, der BeginContainer diese bestimmte GraphicsContainerzurückgegeben hat. Der informationsblock, der von BeginContainer diesem Methodenaufruf auf dem Stapel platziert wird, wird aus dem Stapel entfernt, und alle Informationsblöcke, die nach diesem Methodenaufruf auf diesem Stapel platziert werden, BeginContainer werden ebenfalls entfernt.

Aufrufe der Save -Methode platzieren Informationsblöcke auf demselben Stapel wie Aufrufe der BeginContainer -Methode. Ebenso wie ein EndContainer Methodenaufruf mit einem BeginContainer Methodenaufruf gekoppelt wird, wird ein Restore Methodenaufruf mit einem Save Methodenaufruf gekoppelt.

Wenn Sie die EndContainer -Methode aufrufen, werden alle Informationsblöcke, die nach dem entsprechenden Aufruf der -Methode auf dem Stapel (von der Save -Methode oder von BeginContainer der BeginContainer -Methode) platziert werden, aus dem Stapel entfernt. Ebenso werden beim Aufrufen der Restore -Methode alle Informationsblöcke, die nach dem entsprechenden Aufruf der -Methode auf dem Stapel (von der Save -Methode oder von der BeginContainerSave -Methode) platziert werden, aus dem Stapel entfernt.

Gilt für: