Graphics.Save Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Speichert den aktuellen Zustand dieses Graphics und identifiziert den gespeicherten Zustand mit einem GraphicsState.
public:
System::Drawing::Drawing2D::GraphicsState ^ Save();
public System.Drawing.Drawing2D.GraphicsState Save ();
member this.Save : unit -> System.Drawing.Drawing2D.GraphicsState
Public Function Save () As GraphicsState
Gibt zurück
Diese Methode gibt einen GraphicsState zurück, der den gespeicherten Zustand dieses Graphics darstellt.
Beispiele
Das folgende Codebeispiel ist für die Verwendung mit Windows Forms konzipiert und erfordert PaintEventArgs e, was ein Parameter des Paint Ereignishandlers ist. Der Code führt die folgenden Aktionen aus:
Übersetzt die Welttransformation der Windows Form durch einen Vektor (100, 0).
Speichert den Grafikstatus des Formulars.
Setzt die Welttransformation des Formulars auf eine Identität (2x2-Identitätsmatrix plus eine Nullvektorübersetzung) zurück und füllt ein Rechteck mit einem festen roten Pinsel.
Wiederherstellen des übersetzten Grafikzustands und füllt ein Rechteck mit einem festen blauen Pinsel.
Das Ergebnis ist ein untranslatiertes rot gefülltes Rechteck auf der linken Seite und ein übersetztes blau gefülltes Rechteck rechts neben dem Formular.
public:
void SaveRestore3( 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 SaveRestore3(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 SaveRestore3(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
Hinweise
Wenn Sie die Save Methode einer GraphicsMethode aufrufen, wird ein Informationsblock aufgerufen, der den Zustand der Graphics Datei auf einem Stapel enthält. Die Save Methode gibt einen GraphicsState Wert zurück, der den Informationsblock identifiziert. Wenn Sie die Identifizierung GraphicsState an die Restore Methode übergeben, wird der Informationsblock aus dem Stapel entfernt und zum Wiederherstellen Graphics des Zustands verwendet, in dem es sich zum Zeitpunkt Save des Methodenaufrufs befand. Beachten Sie, dass die GraphicsState von einem bestimmten Aufruf an die Methode zurückgegebene Methode nur einmal an die Save Restore Methode übergeben werden kann.
Aufrufe an die Save Methode können geschachtelt werden. Das heißt, Sie können die Methode mehrmals aufrufen, bevor Sie die Save Restore Methode aufrufen. Jedes Mal, wenn Sie die Save Methode aufrufen, wird ein Informationsblock auf den Stapel gesetzt, und Sie erhalten einen GraphicsState Informationsblock für den Informationsblock. Wenn Sie eine dieser Objekte an die Restore Methode übergeben, wird der Graphics Zustand zurückgegeben, in dem es sich zu dem Zeitpunkt des Save Methodenaufrufs befand, der diesen bestimmten GraphicsStateWert zurückgegeben hat. Der Informationsblock, der auf dem Stapel durch diesen Save Methodenaufruf platziert wird, wird aus dem Stapel entfernt, und alle Informationsblöcke, die nach diesem Save Methodenaufruf platziert wurden, werden ebenfalls entfernt.
Aufrufe BeginContainer der Methode platzieren Informationsblöcke auf demselben Stapel wie Aufrufe Save der Methode. Genauso wie ein Aufruf mit einem Save Aufruf gekoppelt ist, wird ein EndContainer Restore Methodenaufruf mit einem BeginContainer Methodenaufruf gekoppelt.
Wenn Sie die Restore Methode aufrufen, werden alle Informationsblöcke auf dem Stapel (durch die Save Methode oder durch BeginContainer die Methode) nach dem entsprechenden Aufruf der Save Methode aus dem Stapel entfernt. Auch wenn Sie die EndContainer Methode aufrufen, werden alle Informationsblöcke auf dem Stapel (durch Save die Methode oder durch BeginContainer die Methode) nach dem entsprechenden Aufruf der Methode aus dem BeginContainer Stapel entfernt.