Graphics.Restore(GraphicsState) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
この Graphics の状態を、 GraphicsStateで表される状態に復元します。
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)
パラメーター
- gstate
- GraphicsState
GraphicsState この Graphicsを復元する状態を表す >
例
次のコード例は、Windows フォームで使用するように設計されており、PaintEventArgse が必要です。これは、Paint イベント ハンドラーのパラメーターです。 コードは次のアクションを実行します。
Windowsフォームのワールド変換をベクトル (100, 0) で変換します。
フォームのグラフィックス状態を保存します。
フォームのワールド変換を ID にリセットし、単色の赤いブラシで四角形を塗りつぶします。
翻訳されたグラフィックスの状態を復元し、2 番目の四角形に青の純色ブラシを塗りつぶします。
結果は、未翻訳の赤塗りの四角形と、青で塗りつぶされた変換された四角形になります。
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
注釈
SaveのGraphics メソッドを呼び出すと、Graphicsの状態を保持する情報ブロックがスタックに配置されます。
Save メソッドは、その情報ブロックを識別するGraphicsStateを返します。 識別GraphicsStateを Restore メソッドに渡すと、情報ブロックはスタックから削除され、Graphics メソッド呼び出し時の状態にSaveを復元するために使用されます。
GraphicsState メソッドの特定の呼び出しによって返されるSaveは、Restore メソッドに 1 回だけ渡すことができることに注意してください。
Save メソッドの呼び出しは入れ子にすることができます。つまり、Save メソッドを呼び出す前に、Restore メソッドを複数回呼び出すことができます。 Save メソッドを呼び出すたびに、情報ブロックがスタックに配置され、情報ブロックのGraphicsStateを受け取ります。 これらのオブジェクトのいずれかを Restore メソッドに渡すと、その特定のGraphicsを返した Save メソッド呼び出し時の状態にGraphicsStateが返されます。 その Save メソッド呼び出しによってスタックに配置された情報ブロックがスタックから削除され、その Save メソッド呼び出しの後にそのスタックに配置されたすべての情報ブロックも削除されます。
BeginContainer メソッドの呼び出しは、Save メソッドの呼び出しと同じスタックに情報ブロックを配置します。 Restore呼び出しがSave呼び出しとペアになっているのと同様に、EndContainer メソッド呼び出しはBeginContainer メソッド呼び出しとペアになります。
Restore メソッドを呼び出すと、Save メソッドの対応する呼び出しの後に (BeginContainer メソッドまたは Save メソッドによって) スタックに配置されたすべての情報ブロックがスタックから削除されます。 同様に、EndContainer メソッドを呼び出すと、Save メソッドへの対応する呼び出しの後に (BeginContainer メソッドまたは BeginContainer メソッドによって) スタックに配置されたすべての情報ブロックがスタックから削除されます。