Graphics.EndContainer(GraphicsContainer) Método

Definición

Cierra el contenedor de gráficos actual y restaura el estado que tenía este Graphics al estado guardado mediante una llamada al método 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)

Parámetros

container
GraphicsContainer

GraphicsContainer que representa el contenedor restaurado por este método.

Ejemplos

El ejemplo de código siguiente está diseñado para su uso con Windows Forms y requiere PaintEventArgse, que es un parámetro del Paint controlador de eventos. El código realiza las siguientes acciones:

  • Abre un nuevo contenedor de gráficos y guarda el contenedor anterior.

  • Traduce las coordenadas del mundo en el contenedor.

  • Rellena un rectángulo rojo en el nuevo contenedor (coordenadas traducidas de ).

  • Cierra el nuevo contenedor y restaura el contenedor guardado.

  • Rellena un rectángulo verde (en las coordenadas sin traducir) del contenedor guardado.

El resultado es un rectángulo verde que subyace a un rectángulo rojo del mismo tamaño.

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

Comentarios

Use este método con el BeginContainer método para crear contenedores de gráficos anidados. Los contenedores de gráficos conservan el estado de los gráficos, como la transformación, la región de recorte y las propiedades de representación.

Cuando se llama al BeginContainer método de , Graphicsun bloque de información que contiene el estado de Graphics se coloca en una pila. El BeginContainer método devuelve un GraphicsContainer objeto que identifica ese bloque de información. Cuando se pasa el objeto de identificación al EndContainer método , el bloque de información se quita de la pila y se usa para restaurar al Graphics estado en el que estaba en el momento de la llamada al BeginContainer método.

Los contenedores se pueden anidar; es decir, puede llamar al BeginContainer método varias veces antes de llamar al EndContainer método . Cada vez que se llama al BeginContainer método , se coloca un bloque de información en la pila y se recibe un GraphicsContainer para el bloque de información. Cuando se pasa uno de esos objetos al EndContainer método , Graphics se devuelve al estado en el que estaba en el momento de la BeginContainer llamada al método que devolvió ese determinado GraphicsContainer. El bloque de información colocado en la pila por esa BeginContainer llamada de método se quita de la pila y también se quitan todos los bloques de información colocados en esa pila después de esa BeginContainer llamada al método.

Las llamadas al Save método colocan bloques de información en la misma pila que las llamadas al BeginContainer método . Al igual que una EndContainer llamada de método se empareja con una BeginContainer llamada de método, una Restore llamada de método se empareja con una Save llamada de método.

Cuando se llama al EndContainer método , todos los bloques de información colocados en la pila (por el Save método o por el BeginContainer método) después de la llamada correspondiente al BeginContainer método se quitan de la pila. Del mismo modo, cuando se llama al Restore método , todos los bloques de información colocados en la pila (por el Save método o por el BeginContainer método) después de la llamada correspondiente al Save método se quitan de la pila.

Se aplica a