Graphics.BeginContainer 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í.
Uloží grafický kontejner s aktuálním stavem a Graphics otevře se a použije nový grafický kontejner.
Přetížení
BeginContainer() |
Uloží grafický kontejner s aktuálním stavem a Graphics otevře se a použije nový grafický kontejner. |
BeginContainer(Rectangle, Rectangle, GraphicsUnit) |
Uloží grafický kontejner s aktuálním stavem a Graphics otevře se a použije nový kontejner grafiky se zadanou transformací měřítka. |
BeginContainer(RectangleF, RectangleF, GraphicsUnit) |
Uloží grafický kontejner s aktuálním stavem a Graphics otevře se a použije nový kontejner grafiky se zadanou transformací měřítka. |
BeginContainer()
- Zdroj:
- Graphics.cs
- Zdroj:
- Graphics.cs
- Zdroj:
- Graphics.cs
Uloží grafický kontejner s aktuálním stavem a Graphics otevře se a použije nový grafický kontejner.
public:
System::Drawing::Drawing2D::GraphicsContainer ^ BeginContainer();
public System.Drawing.Drawing2D.GraphicsContainer BeginContainer ();
member this.BeginContainer : unit -> System.Drawing.Drawing2D.GraphicsContainer
Public Function BeginContainer () As GraphicsContainer
Návraty
Tato metoda vrátí , GraphicsContainer který představuje stav v Graphics době volání metody.
Příklady
Následující příklad kódu je navrž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ý kontejner grafiky 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 (podle nepřelovaných souřadnic) uloženého kontejneru.
Výsledkem je zelený obdélník, který překlenuje červený obdélník stejné velikosti.
private:
void BeginContainerVoid( 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 );
}
private void BeginContainerVoid(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);
}
Private Sub BeginContainerVoid(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 spolu s metodou EndContainer k vytvoření vnořených grafických kontejnerů. Grafické kontejnery zachovají grafický stav, například transformaci, oblast oříznutí a vlastnosti vykreslování.
Při volání BeginContainer metody objektu Graphicsje informační blok, který obsahuje stav objektu Graphics , umístěn do zásobníku. Metoda BeginContainer vrátí objekt , GraphicsContainer který identifikuje daný informační blok. Když předáte identifikující objekt metodě 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 . Pokaždé, když zavoláte metodu BeginContainer , informační blok je umístěn do zásobníku a obdržíte GraphicsContainer pro informační blok. 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ý do zásobníku voláním BeginContainer metody je odebrán ze zásobníku a všechny informační bloky umístěné v zásobníku po BeginContainer volání metody jsou také odebrány.
Volání Save metody umístí informační bloky do stejného zásobníku BeginContainer jako volání metody . Stejně jako EndContainer volání 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 Save (metodou nebo metodou BeginContainer ) po odpovídajícím volání BeginContainer metody odebrány ze zásobníku. Podobně při volání Restore metody jsou ze zásobníku odebrány všechny informační bloky umístěné v zásobníku Save (metodou nebo metodou BeginContainer ) po odpovídajícím volání Save metody.
Stav grafiky stanovený metodou BeginContainer zahrnuje vlastnosti vykreslování výchozího stavu grafiky. Všechny změny stavu kvality vykreslování existující při zavolání metody se obnoví na výchozí hodnoty.
Platí pro
BeginContainer(Rectangle, Rectangle, GraphicsUnit)
- Zdroj:
- Graphics.cs
- Zdroj:
- Graphics.cs
- Zdroj:
- Graphics.cs
Uloží grafický kontejner s aktuálním stavem a Graphics otevře se a použije nový kontejner grafiky se zadanou transformací měřítka.
public:
System::Drawing::Drawing2D::GraphicsContainer ^ BeginContainer(System::Drawing::Rectangle dstrect, System::Drawing::Rectangle srcrect, System::Drawing::GraphicsUnit unit);
public System.Drawing.Drawing2D.GraphicsContainer BeginContainer (System.Drawing.Rectangle dstrect, System.Drawing.Rectangle srcrect, System.Drawing.GraphicsUnit unit);
member this.BeginContainer : System.Drawing.Rectangle * System.Drawing.Rectangle * System.Drawing.GraphicsUnit -> System.Drawing.Drawing2D.GraphicsContainer
Public Function BeginContainer (dstrect As Rectangle, srcrect As Rectangle, unit As GraphicsUnit) As GraphicsContainer
Parametry
- dstrect
- Rectangle
Rectangle , která společně s parametrem srcrect
určuje transformaci škálování kontejneru.
- srcrect
- Rectangle
Rectangle , která společně s parametrem dstrect
určuje transformaci škálování kontejneru.
- unit
- GraphicsUnit
Člen výčtu GraphicsUnit , který určuje měrnou jednotku kontejneru.
Návraty
Tato metoda vrátí , GraphicsContainer který představuje stav v Graphics době volání metody.
Příklady
Následující příklad kódu je navrž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:
Vytvoří dva obdélníky pro určení transformace škálování pro nový kontejner.
Otevře nový kontejner grafiky a uloží starý kontejner.
Vyplní červený obdélník v novém kontejneru (souřadnice s měřítkem).
Zavře nový kontejner a obnoví uložený kontejner.
Vyplní zelený obdélník (podle souřadnic bez měřítka) uloženého kontejneru.
Výsledkem je zelený obdélník, který je základem menšího červeného obdélníku.
private:
void BeginContainerRectangle( PaintEventArgs^ e )
{
// Define transformation for container.
Rectangle srcRect = Rectangle(0,0,200,200);
Rectangle destRect = Rectangle(100,100,150,150);
// Begin graphics container.
GraphicsContainer^ containerState = e->Graphics->BeginContainer( destRect, srcRect, GraphicsUnit::Pixel );
// Fill red rectangle in container.
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 );
}
private void BeginContainerRectangle(PaintEventArgs e)
{
// Define transformation for container.
Rectangle srcRect = new Rectangle(0, 0, 200, 200);
Rectangle destRect = new Rectangle(100, 100, 150, 150);
// Begin graphics container.
GraphicsContainer containerState = e.Graphics.BeginContainer(
destRect, srcRect,
GraphicsUnit.Pixel);
// Fill red rectangle in container.
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);
}
Private Sub BeginContainerRectangle(ByVal e As PaintEventArgs)
' Define transformation for container.
Dim srcRect As New Rectangle(0, 0, 200, 200)
Dim destRect As New Rectangle(100, 100, 150, 150)
' Begin graphics container.
Dim containerState As GraphicsContainer = _
e.Graphics.BeginContainer(destRect, srcRect, GraphicsUnit.Pixel)
' Fill red rectangle in container.
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 spolu s metodou EndContainer k vytvoření vnořených grafických kontejnerů. Grafické kontejnery zachovají grafický stav, například transformaci, oblast oříznutí a vlastnosti vykreslování.
Při volání BeginContainer metody objektu Graphicsje informační blok, který obsahuje stav objektu Graphics , umístěn do zásobníku. Metoda BeginContainer vrátí objekt , GraphicsContainer který identifikuje daný informační blok. Když předáte identifikující objekt metodě 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 . Pokaždé, když zavoláte metodu BeginContainer , informační blok je umístěn do zásobníku a obdržíte GraphicsContainer pro informační blok. 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ý do zásobníku voláním BeginContainer metody je odebrán ze zásobníku a všechny informační bloky umístěné v zásobníku po BeginContainer volání metody jsou také odebrány.
Volání Save metody umístí informační bloky do stejného zásobníku BeginContainer jako volání metody . Stejně jako EndContainer volání 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 Save (metodou nebo metodou BeginContainer ) po odpovídajícím volání BeginContainer metody odebrány ze zásobníku. Podobně při volání Restore metody jsou ze zásobníku odebrány všechny informační bloky umístěné v zásobníku Save (metodou nebo metodou BeginContainer ) po odpovídajícím volání Save metody.
Tato metoda určuje transformaci škálování pro nový grafický kontejner s dstrect
parametry a srcrect
. Měřítko se rovná transformaci, která při použití na srcrect
má za následek dstrect
.
Stav grafiky stanovený metodou BeginContainer zahrnuje vlastnosti vykreslování výchozího stavu grafiky. Všechny změny stavu kvality vykreslování existující při zavolání metody se obnoví na výchozí hodnoty.
Platí pro
BeginContainer(RectangleF, RectangleF, GraphicsUnit)
- Zdroj:
- Graphics.cs
- Zdroj:
- Graphics.cs
- Zdroj:
- Graphics.cs
Uloží grafický kontejner s aktuálním stavem a Graphics otevře se a použije nový kontejner grafiky se zadanou transformací měřítka.
public:
System::Drawing::Drawing2D::GraphicsContainer ^ BeginContainer(System::Drawing::RectangleF dstrect, System::Drawing::RectangleF srcrect, System::Drawing::GraphicsUnit unit);
public System.Drawing.Drawing2D.GraphicsContainer BeginContainer (System.Drawing.RectangleF dstrect, System.Drawing.RectangleF srcrect, System.Drawing.GraphicsUnit unit);
member this.BeginContainer : System.Drawing.RectangleF * System.Drawing.RectangleF * System.Drawing.GraphicsUnit -> System.Drawing.Drawing2D.GraphicsContainer
Public Function BeginContainer (dstrect As RectangleF, srcrect As RectangleF, unit As GraphicsUnit) As GraphicsContainer
Parametry
- dstrect
- RectangleF
RectangleF , která společně s parametrem srcrect
určuje transformaci škálování pro nový kontejner graphics.
- srcrect
- RectangleF
RectangleF , která společně s parametrem dstrect
určuje transformaci škálování pro nový kontejner graphics.
- unit
- GraphicsUnit
Člen výčtu GraphicsUnit , který určuje měrnou jednotku kontejneru.
Návraty
Tato metoda vrátí , GraphicsContainer který představuje stav v Graphics době volání metody.
Příklady
Následující příklad kódu je navrž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:
Vytvoří dva obdélníky pro určení transformace škálování pro nový kontejner.
Otevře nový kontejner grafiky a uloží starý kontejner.
Vyplní červený obdélník v novém kontejneru (souřadnice s měřítkem).
Zavře nový kontejner a obnoví uložený kontejner.
Vyplní zelený obdélník (podle souřadnic bez měřítka) uloženého kontejneru.
Výsledkem je zelený obdélník, který je základem menšího červeného obdélníku.
private:
void BeginContainerRectangleF( PaintEventArgs^ e )
{
// Define transformation for container.
RectangleF srcRect = RectangleF(0.0F,0.0F,200.0F,200.0F);
RectangleF destRect = RectangleF(100.0F,100.0F,150.0F,150.0F);
// Begin graphics container.
GraphicsContainer^ containerState = e->Graphics->BeginContainer( destRect, srcRect, GraphicsUnit::Pixel );
// Fill red rectangle in container.
e->Graphics->FillRectangle( gcnew SolidBrush( Color::Red ), 0.0F, 0.0F, 200.0F, 200.0F );
// End graphics container.
e->Graphics->EndContainer( containerState );
// Fill untransformed rectangle with green.
e->Graphics->FillRectangle( gcnew SolidBrush( Color::Green ), 0.0F, 0.0F, 200.0F, 200.0F );
}
private void BeginContainerRectangleF(PaintEventArgs e)
{
// Define transformation for container.
RectangleF srcRect = new RectangleF(0.0F, 0.0F, 200.0F, 200.0F);
RectangleF destRect = new RectangleF(100.0F, 100.0F, 150.0F, 150.0F);
// Begin graphics container.
GraphicsContainer containerState = e.Graphics.BeginContainer(
destRect, srcRect,
GraphicsUnit.Pixel);
// Fill red rectangle in container.
e.Graphics.FillRectangle(new SolidBrush(Color.Red), 0.0F, 0.0F, 200.0F, 200.0F);
// End graphics container.
e.Graphics.EndContainer(containerState);
// Fill untransformed rectangle with green.
e.Graphics.FillRectangle(new SolidBrush(Color.Green), 0.0F, 0.0F, 200.0F, 200.0F);
}
Private Sub BeginContainerRectangleF(ByVal e As PaintEventArgs)
' Define transformation for container.
Dim srcRect As New RectangleF(0.0F, 0.0F, 200.0F, 200.0F)
Dim destRect As New RectangleF(100.0F, 100.0F, 150.0F, 150.0F)
' Begin graphics container.
Dim containerState As GraphicsContainer = _
e.Graphics.BeginContainer(destRect, srcRect, GraphicsUnit.Pixel)
' Fill red rectangle in container.
e.Graphics.FillRectangle(New SolidBrush(Color.Red), 0.0F, 0.0F, _
200.0F, 200.0F)
' End graphics container.
e.Graphics.EndContainer(containerState)
' Fill untransformed rectangle with green.
e.Graphics.FillRectangle(New SolidBrush(Color.Green), 0.0F, 0.0F, _
200.0F, 200.0F)
End Sub
Poznámky
Tuto metodu použijte spolu s metodou EndContainer k vytvoření vnořených grafických kontejnerů. Grafické kontejnery zachovají grafický stav, například transformaci, oblast oříznutí a vlastnosti vykreslování.
Při volání BeginContainer metody objektu Graphicsje informační blok, který obsahuje stav objektu Graphics , umístěn do zásobníku. Metoda BeginContainer vrátí objekt , GraphicsContainer který identifikuje daný informační blok. Když předáte identifikující objekt metodě 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 . Pokaždé, když zavoláte metodu BeginContainer , informační blok je umístěn do zásobníku a obdržíte GraphicsContainer pro informační blok. 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ý do zásobníku voláním BeginContainer metody je odebrán ze zásobníku a všechny informační bloky umístěné v zásobníku po BeginContainer volání metody jsou také odebrány.
Volání Save metody umístí informační bloky do stejného zásobníku BeginContainer jako volání metody . Stejně jako EndContainer volání 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 Save
(metodou nebo metodou BeginContainer ) po odpovídajícím volání BeginContainer metody odebrány ze zásobníku. Podobně při volání Restore metody jsou ze zásobníku odebrány všechny informační bloky umístěné v zásobníku Save (metodou nebo metodou BeginContainer ) po odpovídajícím volání Save metody.
Tato metoda určuje transformaci škálování pro nový grafický kontejner s dstrect
parametry a srcrect
. Měřítko se rovná transformaci, která při použití na srcrect
má za následek dstrect
.
Stav grafiky stanovený metodou BeginContainer zahrnuje vlastnosti vykreslování výchozího stavu grafiky. Všechny změny stavu kvality vykreslování existující při zavolání metody se obnoví na výchozí hodnoty.
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro