Graphics.EndContainer(GraphicsContainer) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Stänger den aktuella grafikcontainern och återställer tillståndet för detta Graphics till det tillstånd som sparats av ett anrop till BeginContainer() metoden.
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)
Parametrar
- container
- GraphicsContainer
GraphicsContainer som representerar containern som den här metoden återställer.
Exempel
Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:
Öppnar en ny grafikcontainer och sparar den gamla containern.
Översätter världskoordinaterna i containern.
Fyller en röd rektangel i den nya containerns (översatta koordinater).
Stänger den nya containern och återställer den sparade containern.
Fyller en grön rektangel (till de oöversatta koordinaterna) för den sparade containern.
Resultatet är en grön rektangel som ligger över en röd rektangel av samma storlek.
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
Kommentarer
Använd den BeginContainer här metoden med metoden för att skapa kapslade grafikcontainrar. Grafikcontainrar behåller grafiktillstånd, till exempel transformering, urklippsregion och återgivningsegenskaper.
När du anropar BeginContainer metoden för en Graphicsplaceras ett informationsblock som innehåller tillståndet för Graphics en stack. Metoden BeginContainer returnerar ett GraphicsContainer som identifierar informationsblocket. När du skickar det identifierande objektet till EndContainer metoden tas informationsblocket bort från stacken och används för att återställa Graphics till det tillstånd det befann sig i vid tidpunkten för metodanropet BeginContainer .
Containrar kan kapslas. Det vill säga, du kan anropa BeginContainer metoden flera gånger innan du anropar EndContainer metoden. Varje gång du anropar BeginContainer metoden placeras ett informationsblock på stacken och du får ett GraphicsContainer för informationsblocket. När du skickar ett av dessa objekt till EndContainer metoden Graphics returneras till det tillstånd som det befann sig i vid tidpunkten för metodanropet BeginContainer som returnerade just GraphicsContainerdet . Informationsblocket som placeras på stacken med det BeginContainer metodanropet tas bort från stacken och alla informationsblock som placeras på stacken efter metodanropet BeginContainer tas också bort.
Anrop till Save metoden placerar informationsblock i samma stack som anrop till BeginContainer metoden. Precis som ett EndContainer metodanrop paras ihop med ett BeginContainer metodanrop paras ett Restore metodanrop ihop med ett Save metodanrop.
När du anropar EndContainer metoden tas alla informationsblock som placerats på stacken Save (med metoden eller BeginContainer metoden) efter motsvarande anrop till BeginContainer metoden bort från stacken. På samma sätt, när du anropar Restore metoden, tas alla informationsblock som placerats på stacken Save (med metoden eller BeginContainer metoden) efter motsvarande anrop till Save metoden bort från stacken.