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 do 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 PaintEventArgse
parametru Paint programu obsługi zdarzeń. Kod wykonuje następujące akcje:
Tłumaczy transformację świata formularza systemu Windows przez wektor (100, 0).
Zapisuje stan grafiki formularza.
Resetuje świat transformacji formularza do tożsamości i wypełnia prostokąt stałym czerwonym pędzlem.
Przywraca przetłumaczony stan grafiki i wypełnia drugi prostokąt 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 obiektu Graphicsblok informacji, który przechowuje stan obiektu Graphics , jest umieszczany na stosie. Metoda Save zwraca wartość GraphicsState , która identyfikuje ten blok informacji. Po przekazaniu identyfikatora GraphicsState do Restore metody blok informacji jest usuwany ze stosu i jest używany do przywracania Graphics do stanu, w którym znajdował się w momencie Save wywołania metody. Należy pamiętać, że zwrócone GraphicsState przez dane 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 obiekt jest zwracany do stanu, w którym znajdował się w czasie Save wywołania metody, które zwróciło ten konkretny GraphicsStateelement . Blok informacji umieszczony na stosie przez Save to wywołanie metody jest usuwany ze stosu, a wszystkie bloki informacji umieszczone na tym stosie po wywołaniu Save metody również zostaną usunięte.
BeginContainer Wywołania metody umieszczają bloki informacji na tym samym stosie co wywołania Save metody . Podobnie jak Restore wywołanie jest sparowane z wywołaniem Save , EndContainer wywołanie metody jest sparowane z wywołaniem BeginContainer metody.
Po wywołaniu Restore metody wszystkie bloki informacji umieszczone na stosie (przez Save metodę lub BeginContainer metodę) po usunięciu odpowiedniego wywołania Save metody z stosu. Podobnie po wywołaniu EndContainer metody wszystkie bloki informacyjne umieszczone na stosie (za pomocą Save metody lub BeginContainer metody) po usunięciu odpowiedniego wywołania BeginContainer metody z stosu.
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla