Graphics.Restore(GraphicsState) Methode

Definition

Stellt den Zustand dieses Graphics wieder her, der durch einen GraphicsState dargestellt wird.

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)

Parameter

gstate
GraphicsState

GraphicsState, der den Zustand darstellt, der für dieses Graphics wiederhergestellt werden soll.

Beispiele

Das folgende Codebeispiel ist für die Verwendung mit Windows Forms konzipiert und erfordert PaintEventArgse, was ein Parameter des Paint Ereignishandlers ist. Der Code führt die folgenden Aktionen aus:

  • Übersetzt die Welttransformation von Windows Form durch einen Vektor (100, 0).

  • Speichert den Grafikzustand des Formulars.

  • Setzt die Welttransformation des Formulars auf eine Identität zurück und füllt ein Rechteck mit einem durchgehenden roten Pinsel.

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

Das Ergebnis ist ein nicht übersetztes rot gefülltes Rechteck und ein übersetztes blau gefülltes Rechteck.

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

Hinweise

Wenn Sie die Save -Methode von aufrufen Graphics, wird ein Informationsblock, der den Zustand von Graphics enthält, auf einem Stapel platziert. Die Save -Methode gibt einen GraphicsState zurück, der diesen Informationsblock identifiziert. Wenn Sie die Identifizierung GraphicsState an die Restore -Methode übergeben, wird der Informationsblock aus dem Stapel entfernt und verwendet, um den Graphics Zustand wiederherzustellen, in dem er sich zum Zeitpunkt des Save Methodenaufrufs befand. Beachten Sie, dass das GraphicsState von einem bestimmten Aufruf der Save -Methode zurückgegebene nur einmal an die Restore -Methode übergeben werden kann.

Aufrufe der Save -Methode können geschachtelt werden. Das heißt, Sie können die Save Methode mehrmals aufrufen, bevor Sie die Restore -Methode aufrufen. Jedes Mal, wenn Sie die Save -Methode aufrufen, wird ein Informationsblock auf dem Stapel platziert, und Sie erhalten einen GraphicsState für den Informationsblock. Wenn Sie eines dieser Objekte an die Restore -Methode übergeben, wird in Graphics den Zustand zurückgegeben, in dem es sich zum Zeitpunkt des Methodenaufrufs befand, der Save diesen bestimmten GraphicsStatezurückgegeben hat. Der durch diesen Save Methodenaufruf auf dem Stapel platzierte Informationsblock wird aus dem Stapel entfernt, und alle Informationsblöcke, die nach diesem Methodenaufruf auf diesem Stapel platziert werden, Save werden ebenfalls entfernt.

Aufrufe der BeginContainer -Methode platzieren Informationsblöcke auf demselben Stapel wie Aufrufe der Save -Methode. Wenn ein Restore Aufruf mit einem Save Aufruf gekoppelt ist, wird ein EndContainer Methodenaufruf mit einem BeginContainer Methodenaufruf gekoppelt.

Wenn Sie die Restore -Methode aufrufen, werden alle Informationsblöcke, die nach dem entsprechenden Aufruf der -Methode auf dem Stapel (von der Save -Methode oder von der BeginContainerSave -Methode) platziert werden, aus dem Stapel entfernt. Ebenso werden beim Aufrufen der EndContainer -Methode alle Informationsblöcke, die nach dem entsprechenden Aufruf der -Methode auf dem Stapel (von der Save -Methode oder von der BeginContainerBeginContainer -Methode) platziert werden, aus dem Stapel entfernt.

Gilt für: