Graphics.EndContainer(GraphicsContainer) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zavře aktuální kontejner grafiky a obnoví stav tohoto Graphics stavu 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 události Paint. 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 do nového kontejneru (přeložené souřadnice).
Zavře nový kontejner a obnoví uložený kontejner.
Vyplní zelený obdélník (do nepřeložitých souřadnic) uloženého kontejneru.
Výsledkem je zelený obdélník, který překlenuje červený obdélník 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 zachovají grafický stav, jako jsou transformace, výřez oblasti a vlastnosti vykreslování.
Když zavoláte metodu BeginContainerGraphics, informační blok, který obsahuje stav Graphics je vložen do zásobníku. Metoda BeginContainer vrátí chybu GraphicsContainer , která identifikuje tento informační blok. Když předáte identifikační objekt metodě EndContainer , informační blok se odebere ze zásobníku a slouží k obnovení Graphics stavu, ve který byl v době BeginContainer volání metody.
Kontejnery lze vnořit; to znamená, že metodu BeginContainer můžete volat několikrát předtím, než metodu EndContainer zavoláte. Pokaždé, když zavoláte metodu BeginContainer , se do zásobníku vloží informační blok a obdržíte GraphicsContainer 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 tento konkrétní GraphicsContainer. Blok informací umístěný do zásobníku voláním BeginContainer této metody se odebere ze zásobníku a odeberou se také všechny informační bloky umístěné na daném BeginContainer zásobníku po volání metody.
Volání metody Save umístí informační bloky do stejného zásobníku jako volání metody BeginContainer . Stejně jako volání EndContainer metody je spárováno s voláním BeginContainer metody, Restore volání metody je spárováno s voláním Save metody.
Při volání EndContainer metody jsou všechny informační bloky umístěné v zásobníku (metodou Save nebo BeginContainer metodou) po odpovídajícím volání BeginContainer metody odebrány ze zásobníku. Podobně při volání Restore metody jsou všechny informační bloky umístěné v zásobníku (metodou Save nebo BeginContainer metodou) po odpovídajícím volání Save metody odebrány ze zásobníku.