Graphics.Save Methode

Definition

Speichert den aktuellen Zustand dieses Graphics und identifiziert den gespeicherten Zustand mit einem GraphicsState.Saves the current state of this Graphics and identifies the saved state with a 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

GraphicsState

Diese Methode gibt einen GraphicsState zurück, der den gespeicherten Zustand dieses Graphics darstellt.This method returns a GraphicsState that represents the saved state of this Graphics.

Beispiele

Das folgende Codebeispiel ist für die Verwendung mit Windows Forms konzipiert und erfordert, wobei es sich um PaintEventArgs e einen Parameter des- Paint Ereignis Handlers handelt.The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. Der Code führt die folgenden Aktionen aus:The code performs the following actions:

  • Übersetzt die Welt Transformation von Windows Form durch einen Vektor (100, 0).Translates the world transform of the Windows Form by a vector (100, 0).

  • Speichert den Grafik Zustand des Formulars.Saves the graphics state of the form.

  • Setzt die globale Transformation des Formulars auf eine Identität (2x2-Identitätsmatrix plus eine NULL Vektor Übersetzung) zurück und füllt ein Rechteck mit einem voll tonroten Pinsel.Resets the world transform of the form to an identity (2x2 identity matrix plus a zero-vector translation) and fills a rectangle with a solid red brush.

  • Stellt den übersetzten Grafik Zustand wieder her und füllt ein Rechteck mit einem Pinsel mit ausgefülltem blauen Pinsel.Restores the translated graphics state and fills a rectangle with a solid blue brush.

Das Ergebnis ist ein nicht übersetztes, rot ausgefülltes Rechteck auf der linken Seite und ein über setztes blau auffülltes Rechteck auf der rechten Seite des Formulars.The result is an untranslated red-filled rectangle on the left and a translated blue-filled rectangle on the right of the form.

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 eines aufzurufen Graphics , wird ein Informationsblock, der den Zustand von enthält, Graphics in einen Stapel eingefügt.When you call the Save method of a Graphics, an information block that holds the state of the Graphics is put on a stack. Die- Save Methode gibt einen zurück GraphicsState , der diesen Informationsblock identifiziert.The Save method returns a GraphicsState that identifies that information block. Wenn Sie das identifizier GraphicsState Ende an die- Restore Methode übergeben, wird der Informationsblock aus dem Stapel entfernt und verwendet, um die in dem Zustand wiederherzustellen, in dem Sie sich zum Graphics Zeitpunkt des Save Methoden Aufrufens befand.When you pass the identifying GraphicsState to the Restore method, the information block is removed from the stack and is used to restore the Graphics to the state it was in at the time of the Save method call. Beachten Sie, dass der GraphicsState , der von einem gegebenen-Methoden Rückruf zurückgegeben wurde, Save nur einmal an die-Methode übergeben werden kann Restore .Note that the GraphicsState returned by a given call to the Save method can be passed only once to the Restore method.

Aufrufe der- Save Methode können mit einem anderen Aufruf erfolgen, d. h., Sie können die- Save Methode mehrmals aufrufen, bevor Sie die- Restore Methode aufrufen.Calls to the Save method can be nested; that is, you can call the Save method several times before you call the Restore method. Jedes Mal, wenn Sie die-Methode aufzurufen Save , wird ein Informationsblock in den Stapel eingefügt, und Sie erhalten eine GraphicsState für den Informationsblock.Each time you call the Save method, an information block is put on the stack, and you receive a GraphicsState for the information block. Wenn Sie eines dieser Objekte an die- Restore Methode übergeben, wird die an Graphics den Zustand zurückgegeben, in dem Sie sich zum Zeitpunkt des Save Methoden Aufrufes befand, der diese bestimmte zurückgegeben hat GraphicsState .When you pass one of those objects to the Restore method, the Graphics is returned to the state it was in at the time of the Save method call that returned that particular GraphicsState. Der Informationsblock, der durch diesen Methoden Anruf auf dem Stapel abgelegt Save wird, wird aus dem Stapel entfernt, und alle Informationsblöcke, die nach diesem Methoden Anruf auf diesem Stapel platziert Save werden, werden ebenfalls entfernt.The information block placed on the stack by that Save method call is removed from the stack, and all information blocks placed on that stack after that Save method call are also removed.

Aufrufe der- BeginContainer Methode platzieren Informationsblöcke auf demselben Stapel wie Aufrufe der- Save Methode.Calls to the BeginContainer method place information blocks on the same stack as calls to the Save method. Ebenso wie ein-Befehl Restore mit einem-Befehl gekoppelt wird Save , EndContainer wird ein Methoden aufrufspaar einem BeginContainer Methoden aufzurufen.Just as a Restore call is paired with a Save call, a EndContainer method call is paired with a BeginContainer method call.

Wenn Sie die- Restore Methode aufzurufen, werden alle Informationsblöcke, die auf dem Stapel abgelegt werden (durch die- Save Methode oder die- BeginContainer Methode), nachdem der entsprechende Save aufrufungsaufrufungsmethode aus dem Stapel entfernt wurde.When you call the Restore method, all information blocks placed on the stack (by the Save method or by the BeginContainer method) after the corresponding call to the Save method are removed from the stack. Ebenso werden beim Abrufen der- EndContainer Methode alle Informationsblöcke, die auf dem Stapel abgelegt werden (durch die- Save Methode oder die- BeginContainer Methode), nachdem der entsprechende aufrufungsaufrufder BeginContainer Methode aus dem Stapel entfernt wurde.Likewise, When you call the EndContainer method, all information blocks placed on the stack (by the Save method or by the BeginContainer method) after the corresponding call to the BeginContainer method are removed from the stack.

Gilt für: