Graphics.EndContainer(GraphicsContainer) Metoda

Definice

Zavře aktuální grafický kontejner a obnoví jeho stav Graphics do stavu uloženého voláním BeginContainer() metody.

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)

Parametry

container
GraphicsContainer

GraphicsContainer představuje kontejner, který tato metoda obnoví.

Příklady

Následující příklad kódu je určen pro použití s model Windows Forms a vyžaduje PaintEventArgse, což je parametr obslužné rutiny Paint události. Kód provede následující akce:

  • Otevře nový grafický kontejner a uloží starý kontejner.

  • Přeloží souřadnice světa v kontejneru.

  • Vyplní červený obdélník v novém kontejneru (přeložené souřadnice).

  • Zavře nový kontejner a obnoví uložený kontejner.

  • Vyplní zelený obdélník (do nepřekládaných souřadnic) uloženého kontejneru.

Výsledkem je zelený obdélník, který je základem červeného obdélníku stejné velikosti.

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

Poznámky

Tuto metodu použijte s metodou BeginContainer k vytvoření vnořených grafických kontejnerů. Grafické kontejnery si zachovávají stav grafiky, jako je transformace, oblast oříznutí a vlastnosti vykreslování.

Když zavoláte metodu BeginContainer objektu Graphics, informační blok, který obsahuje stav objektu Graphics , se umístí do zásobníku. Metoda BeginContainer vrátí objekt GraphicsContainer , který identifikuje tento informační blok. Když do metody předáte identifikační objekt EndContainer , informační blok se odebere ze zásobníku a použije se k obnovení Graphics do stavu, ve který byl v době BeginContainer volání metody.

Kontejnery mohou být vnořené. to znamená, že můžete volat metodu BeginContainer několikrát před voláním EndContainer metody. Při každém volání BeginContainer metody se do zásobníku umístí informační blok a vy obdržíte GraphicsContainer informační blok pro blok informací. Když předáte jeden z těchto objektů metodě EndContainer , vrátí se do stavu, Graphics ve který byl v době BeginContainer volání metody, která vrátila konkrétní GraphicsContainer. Informační blok umístěný na zásobníku voláním BeginContainer metody je ze zásobníku odebrán a všechny informační bloky umístěné v zásobníku po BeginContainer volání metody jsou také odebrány.

Save Volání metody umístí informační bloky do stejného zásobníku BeginContainer jako volání metody. Stejně jako EndContainer je volání metody spárováno s voláním BeginContainer metody, Restore je volání metody spárováno s voláním Save metody.

Při volání EndContainer metody jsou ze zásobníku odebrány všechny informační bloky umístěné na zásobníku ( Save metodou nebo metodou BeginContainer ) po odpovídajícím volání BeginContainer metody. Podobně při volání Restore metody se ze zásobníku odeberou všechny informační bloky umístěné na zásobníku (metodou Save nebo metodou BeginContainer ) po odpovídajícím volání Save metody.

Platí pro