Graphics.Restore(GraphicsState) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przywraca stan tego Graphics stanu reprezentowanego przez element 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
GraphicsState reprezentuje stan, do którego ma być przywrócony ten Graphicselement .
Przykłady
Poniższy przykład kodu jest przeznaczony do użycia z Windows Forms i wymaga PaintEventArgs eparametru Paint programu obsługi zdarzeń. Kod wykonuje następujące akcje:
Tłumaczy transformację świata Windows Form według wektora (100, 0).
Zapisuje stan grafiki formularza.
Resetuje świat transformacji formularza do tożsamości i wypełnia prostokąt solidnym czerwonym pędzlem.
Przywraca przetłumaczony stan grafiki i wypełnia drugi prostokąt z niebieskim pędzlem.
Wynik jest nieprzetłumaczonym czerwonym prostokątem i przetłumaczonym niebieskim prostokątem.
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
Uwagi
Po wywołaniu Save metody Graphicsbloku informacji, który przechowuje stan obiektu Graphics , jest umieszczany na stosie. Metoda Save zwraca element GraphicsState identyfikujący ten blok informacji. Po przekazaniu identyfikatora GraphicsState do Restore metody blok informacji zostanie usunięty ze stosu i zostanie użyty do przywrócenia Graphics stanu, w którym znajdował się w momencie Save wywołania metody. Należy pamiętać, że GraphicsState zwrócone przez podane wywołanie metody można przekazać Save tylko raz do Restore metody.
Save Wywołania metody można zagnieżdżać. Oznacza to, że można wywołać metodę Save kilka razy przed wywołaniem Restore metody. Za każdym razem, gdy wywołujesz metodę Save , blok informacji jest umieszczany na stosie i otrzymujesz element GraphicsState dla bloku informacji. Po przekazaniu jednego z tych obiektów do Restore metody Graphics zwracany jest stan, w którym znajdował się w momencie Save wywołania metody, które zwróciło tę konkretną GraphicsStatemetodę . Blok informacji umieszczony na stosie przez Save to wywołanie metody jest usuwany ze stosu, a wszystkie bloki informacji umieszczone na tym Save stosie po wywołaniu metody również zostaną usunięte.
Wywołania metody BeginContainer umieszczają bloki informacji na tym samym stosie co wywołania Save metody . Podobnie jak Restore wywołanie jest sparowane z Save wywołaniem, EndContainer wywołanie metody jest sparowane z BeginContainer wywołaniem metody.
Po wywołaniu Restore metody wszystkie bloki informacji umieszczone na stosie (według Save metody lub BeginContainer metody) po usunięciu odpowiedniego wywołania Save metody z stosu. Podobnie po wywołaniu EndContainer metody wszystkie bloki informacji umieszczone na stosie (według Save metody lub BeginContainer metody) po usunięciu odpowiedniego wywołania metody z BeginContainer stosu.