Export (0) Print
Expand All

Graphics.Restore Method

Restores the state of this Graphics to the state represented by a GraphicsState.

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

member Restore : 
        gstate:GraphicsState -> unit

Parameters

gstate
Type: System.Drawing.Drawing2D.GraphicsState

GraphicsState that represents the state to which to restore this Graphics.

When you call the Save method of a Graphics, an information block that holds the state of the Graphics is put on a stack. The Save method returns a GraphicsState that identifies that information block. 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. Note that the GraphicsState returned by a given call to the Save method can be passed only once to the Restore method.

Calls to the Save method can be nested; that is, you can call the Save method several times before you call the Restore method. Each time you call the Save method, an information block is put on the stack, and you receive a GraphicsState for the information block. 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. 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.

Calls to the BeginContainer method place information blocks on the same stack as calls to the Save method. Just as a Restore call is paired with a Save call, a EndContainer method call is paired with a BeginContainer method call.

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. 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.

The following code example is designed for use with Windows Forms, and it requires PaintEventArgs e, which is a parameter of the Paint event handler. The code performs the following actions:

  • Translates the world transform of the Windows Form by a vector (100, 0).

  • Saves the graphics state of the form.

  • Resets the world transform of the form to an identity and fills a rectangle with a solid red brush.

  • Restores the translated graphics state and fills a second rectangle with a solid blue brush.

The result is an untranslated red-filled rectangle and a translated blue-filled rectangle.

No code example is currently available or this language may not be supported.

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft