Freigeben über


Graphics.EndContainer-Methode

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

Namespace: System.Drawing
Assembly: System.Drawing (in system.drawing.dll)

Syntax

'Declaration
Public Sub EndContainer ( _
    container As GraphicsContainer _
)
'Usage
Dim instance As Graphics
Dim container As GraphicsContainer

instance.EndContainer(container)
public void EndContainer (
    GraphicsContainer container
)
public:
void EndContainer (
    GraphicsContainer^ container
)
public void EndContainer (
    GraphicsContainer container
)
public function EndContainer (
    container : GraphicsContainer
)

Parameter

  • container
    GraphicsContainer, der den Container darstellt, der durch diese Methode wiederhergestellt wird.

Hinweise

Diese Methode können Sie mit der BeginContainer-Methode verwenden, um geschachtelte Grafikcontainer zu erstellen. Grafikcontainer behalten den Grafikzustand bei, z. B. Transformation, Ausschneidebereich und Wiedergabeeigenschaften.

Bei Aufruf der BeginContainer-Methode eines Graphics wird ein Informationsblock mit dem Zustand des Graphics auf einem Stapel abgelegt. Die BeginContainer-Methode gibt einen GraphicsContainer zurück, der den Informationsblock bezeichnet. Wenn das bezeichnende Objekt an die EndContainer-Methode übergeben wird, wird der Informationsblock vom Stapel entfernt und verwendet, um das Graphics wieder in den Zustand zu versetzen, in dem es sich beim Aufruf der BeginContainer-Methode befunden hat.

Container können geschachtelt werden, d. h., Sie können die BeginContainer-Methode mehrmals aufrufen, bevor Sie die EndContainer-Methode aufrufen. Bei jedem Aufruf der BeginContainer-Methode wird ein Informationsblock auf dem Stapel abgelegt, und Sie erhalten einen GraphicsContainer für den Informationsblock. Wenn Sie der EndContainer-Methode eines dieser Objekte übergeben, wird das Graphics wieder in den Zustand versetzt, in dem es sich befand, als der Aufruf der BeginContainer-Methode stattfand, bei dem dieses bestimmte GraphicsContainer-Objekt zurückgegeben wurde. Der bei diesem Aufruf der BeginContainer-Methode auf dem Stapel abgelegte Informationsblock sowie alle nach diesem Aufruf der BeginContainer-Methode auf dem Stapel abgelegten Informationsblöcke werden vom Stapel entfernt.

Bei einem Aufruf der Save-Methode werden Informationsblöcke auf demselben Stapel wie bei einem Aufruf der BeginContainer-Methode abgelegt. Ebenso wie ein Aufruf der EndContainer-Methode mit einem Aufruf der BeginContainer-Methode kombiniert ist, ist ein Aufruf der Restore-Methode mit einem Aufruf der Save-Methode kombiniert.

Beim Aufruf der EndContainer-Methode werden alle Informationsblöcke vom Stapel entfernt, die nach dem entsprechenden Aufruf der BeginContainer-Methode (von der Save-Methode oder der BeginContainer-Methode) auf dem Stapel abgelegt wurden. Ebenso werden beim Aufruf der Restore-Methode alle Informationsblöcke vom Stapel entfernt, die nach dem entsprechenden Aufruf der Save-Methode (von der Save-Methode oder der BeginContainer-Methode) auf dem Stapel abgelegt wurden.

Beispiel

Das folgende Codebeispiel ist für die Verwendung mit Windows Forms vorgesehen und erfordert PaintEventArgse, wobei es sich um einen Parameter des Paint-Ereignishandlers handelt. Der Code führt die folgenden Aktionen aus:

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

  • Verschiebt die globalen Koordinaten im Container.

  • Füllt ein rotes Rechteck (in den verschobenen Koordinaten) im neuen Container aus.

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

  • Füllt ein grünes Rechteck (in den nicht verschobenen Koordinaten) im gespeicherten Container aus.

Das Ergebnis ist ein grünes Rechteck, unter dem sich ein rotes Rechteck derselben Größe befindet.

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
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:
   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.get_Graphics().BeginContainer();

    // Translate world transformation.
    e.get_Graphics().TranslateTransform(100, 100);

    // Fill translated rectangle in container with red.
    e.get_Graphics().FillRectangle(new SolidBrush(Color.get_Red()), 0, 0,
        200, 200);

    // End graphics container.
    e.get_Graphics().EndContainer(containerState);

    // Fill untransformed rectangle with green.
    e.get_Graphics().FillRectangle(new SolidBrush(Color.get_Green()), 0, 0,
        200, 200);
} //EndContainerState

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

Graphics-Klasse
Graphics-Member
System.Drawing-Namespace