Graphics.Restore-Methode
Stellt den Zustand dieses Graphics wieder her, der durch einen GraphicsState dargestellt wird.
Namespace: System.Drawing
Assembly: System.Drawing (in system.drawing.dll)
Syntax
'Declaration
Public Sub Restore ( _
gstate As GraphicsState _
)
'Usage
Dim instance As Graphics
Dim gstate As GraphicsState
instance.Restore(gstate)
public void Restore (
GraphicsState gstate
)
public:
void Restore (
GraphicsState^ gstate
)
public void Restore (
GraphicsState gstate
)
public function Restore (
gstate : GraphicsState
)
Parameter
- gstate
GraphicsState, der den Zustand darstellt, in den dieses Graphics zurückversetzt werden soll.
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 zurück und füllt ein Rechteck mit einem einfarbigen roten Pinsel aus.
Stellt den verschobenen Grafikzustand wieder her und füllt ein zweites Rechteck mit einem einfarbigen blauen Pinsel aus.
Das Ergebnis ist ein nicht verschobenes, rot gefülltes Rechteck und ein verschobenes, blau gefülltes Rechteck.
Public 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
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(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