Graphics.Restore(GraphicsState) 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í.
Obnoví stav této Graphics funkce do stavu reprezentované parametrem GraphicsState.
public:
void Restore(System::Drawing::Drawing2D::GraphicsState ^ gstate);
public void Restore (System.Drawing.Drawing2D.GraphicsState gstate);
member this.Restore : System.Drawing.Drawing2D.GraphicsState -> unit
Public Sub Restore (gstate As GraphicsState)
Parametry
- gstate
- GraphicsState
GraphicsStatepředstavuje stav, do kterého se má obnovit .Graphics
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:
Přeloží světovou transformaci formuláře Windows Pomocí vektoru (100, 0).
Uloží stav grafiky formuláře.
Obnoví světovou transformaci formuláře na identitu a vyplní obdélník plným červeným štětcem.
Obnoví přeložený grafický stav a vyplní druhý obdélník plným modrým štětcem.
Výsledkem je nepřelládaný červeně vyplněný obdélník a přeložený obdélník s modrou výplní.
public:
void SaveRestore2( PaintEventArgs^ e )
{
// Translate transformation matrix.
e->Graphics->TranslateTransform( 100, 0 );
// Save translated graphics state.
GraphicsState^ transState = e->Graphics->Save();
// Reset transformation matrix to identity and fill rectangle.
e->Graphics->ResetTransform();
e->Graphics->FillRectangle( gcnew SolidBrush( Color::Red ), 0, 0, 100, 100 );
// Restore graphics state to translated state and fill second
// rectangle.
e->Graphics->Restore( transState );
e->Graphics->FillRectangle( gcnew SolidBrush( Color::Blue ), 0, 0, 100, 100 );
}
private void SaveRestore2(PaintEventArgs e)
{
// Translate transformation matrix.
e.Graphics.TranslateTransform(100, 0);
// Save translated graphics state.
GraphicsState transState = e.Graphics.Save();
// Reset transformation matrix to identity and fill rectangle.
e.Graphics.ResetTransform();
e.Graphics.FillRectangle(new SolidBrush(Color.Red), 0, 0, 100, 100);
// Restore graphics state to translated state and fill second
// rectangle.
e.Graphics.Restore(transState);
e.Graphics.FillRectangle(new SolidBrush(Color.Blue), 0, 0, 100, 100);
}
Private Sub SaveRestore2(ByVal e As PaintEventArgs)
' Translate transformation matrix.
e.Graphics.TranslateTransform(100, 0)
' Save translated graphics state.
Dim transState As GraphicsState = e.Graphics.Save()
' Reset transformation matrix to identity and fill rectangle.
e.Graphics.ResetTransform()
e.Graphics.FillRectangle(New SolidBrush(Color.Red), 0, 0, 100, 100)
' Restore graphics state to translated state and fill second
' rectangle.
e.Graphics.Restore(transState)
e.Graphics.FillRectangle(New SolidBrush(Color.Blue), 0, 0, _
100, 100)
End Sub
Poznámky
Když zavoláte metodu Save objektu Graphics, informační blok, který obsahuje stav objektu Graphics , se umístí do zásobníku. Metoda Save vrátí objekt GraphicsState , který identifikuje tento informační blok. Když předáte identifikaci GraphicsStateRestore metodě, informační blok se odebere ze zásobníku a použije se k obnovení Graphics do stavu, ve který byl v době Save volání metody. Všimněte si GraphicsState , že vrácené daným voláním Save metody lze metodě předat pouze jednou Restore
.
Save Volání metody mohou být vnořená. To znamená, že před voláním metody můžete metodu SaveRestore volat několikrát. Při každém volání Save metody se do zásobníku umístí informační blok a vy obdržíte GraphicsState informační blok pro blok informací. Když předáte jeden z těchto objektů metodě Restore , vrátí se do stavu, Graphics ve který byl v době Save volání metody, která vrátila konkrétní GraphicsState. Informační blok umístěný na zásobníku voláním Save metody je ze zásobníku odebrán a všechny informační bloky umístěné v zásobníku po Save volání metody jsou také odebrány.
BeginContainer Volání metody umístí informační bloky do stejného zásobníku Save jako volání metody. Stejně jako Restore je volání spárováno s voláním Save , EndContainer je volání metody spárováno s voláním BeginContainer metody.
Při volání Restore 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í Save metody. Podobně při volání EndContainer 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í BeginContainer metody.
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