Freigeben über


Graphics.Save-Methode

Speichert den aktuellen Zustand dieses Graphics und bezeichnet den gespeicherten Zustand mit einem GraphicsState.

Namespace: System.Drawing
Assembly: System.Drawing (in system.drawing.dll)

Syntax

'Declaration
Public Function Save As GraphicsState
'Usage
Dim instance As Graphics
Dim returnValue As GraphicsState

returnValue = instance.Save
public GraphicsState Save ()
public:
GraphicsState^ Save ()
public GraphicsState Save ()
public function Save () : GraphicsState

Rückgabewert

Dieses Methode gibt einen GraphicsState zurück, der den gespeicherten Zustand dieses Graphics darstellt.

Hinweise

Bei Aufruf der Save-Methode eines Graphics wird ein Informationsblock mit dem Zustand des Graphics auf einem Stapel abgelegt. Die Save-Methode gibt einen GraphicsState zurück, der den Informationsblock bezeichnet. Wenn der bezeichnende GraphicsState an die Restore-Methode übergeben wird, wird der Informationsblock vom Stapel entfernt und verwendet, um das Graphics wieder in den Zustand zu versetzen, in dem es sich beim Aufruf der Save-Methode befunden hat. Beachten Sie, dass der GraphicsState, der bei einem angegebenen Aufruf der Save-Methode zurückgegeben wird, nur einmal an die Restore-Methode übergeben werden kann.

Aufrufe der Save-Methode können geschachtelt werden, d. h., dass Sie die Save-Methode mehrmals aufrufen können, bevor Sie die Restore-Methode aufrufen. Bei jedem Aufruf der Save-Methode wird ein Informationsblock auf dem Stapel abgelegt, und Sie erhalten einen GraphicsState für den Informationsblock. Wenn Sie der Restore-Methode eines dieser Objekte übergeben, wird das Graphics wieder in den Zustand versetzt, in dem es sich befand, als der Aufruf der Save-Methode stattfand, bei dem dieser bestimmte GraphicsState zurückgegeben wurde. Der bei diesem Aufruf der Save-Methode auf dem Stapel abgelegte Informationsblock sowie alle nach diesem Aufruf der Save-Methode auf dem Stapel abgelegten Informationsblöcke werden vom Stapel entfernt.

Bei einem Aufruf der BeginContainer-Methode werden Informationsblöcke auf demselben Stapel wie bei einem Aufruf der Save-Methode abgelegt. Ebenso wie ein Aufruf von Restore mit einem Aufruf von Save kombiniert ist, ist ein Aufruf der EndContainer-Methode mit einem Aufruf der BeginContainer-Methode kombiniert.

Beim Aufruf der Restore-Methode werden alle Informationsblöcke vom Stapel entfernt, die nach dem entsprechenden Aufruf der BeginContainer-Methode (von der Save-Methode oder der Save-Methode) auf dem Stapel abgelegt wurden. Ebenso werden beim Aufruf der EndContainer-Methode alle Informationsblöcke vom Stapel entfernt, die nach dem entsprechenden Aufruf der BeginContainer-Methode (von der Save-Methode oder der BeginContainer-Methode) auf dem Stapel abgelegt wurden.

Beispiel

Das folgende Codebeispiel ist für die Verwendung mit Windows Forms vorgesehen und erfordert PaintEventArgse, wobei es sich um einen Parameter des Paint-Ereignishandlers handelt. Der Code führt die folgenden Aktionen aus:

  • Verschiebt die globale Transformation des Windows Form um einen Vektor (100, 0).

  • Speichert den Grafikzustand des Formulars.

  • Setzt die globale Transformation des Formulars auf eine Identität (eine 2 x 2-Identitätsmatrix mit einem Nullvektor als Verschiebung) zurück und füllt ein Rechteck mit einem breiten einfarbigen Pinsel aus.

  • Stellt den verschobenen Grafikzustand wieder her und füllt ein Rechteck mit einem einfarbigen blauen Pinsel aus.

Das Ergebnis ist ein nicht verschobenes, rot gefülltes Rechteck links und ein verschobenes, blau gefülltes Rechteck rechts auf dem Formular.

Public 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
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(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);
}

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

Graphics-Klasse
Graphics-Member
System.Drawing-Namespace