Graphics.Save メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
この Graphics の現在の状態を保存し、保存された状態を 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
返品
このメソッドは、このGraphicsStateの保存された状態を表すGraphicsを返します。
例
次のコード例は、Windows フォームで使用するように設計されており、PaintEventArgse が必要です。これは、Paint イベント ハンドラーのパラメーターです。 コードは次のアクションを実行します。
Windowsフォームのワールド変換をベクトル (100, 0) で変換します。
フォームのグラフィックス状態を保存します。
フォームのワールド変換を ID (2x2 の ID 行列に 0 ベクトル変換を加えたもの) にリセットし、四角形に赤の純色ブラシを塗りつぶします。
翻訳されたグラフィックスの状態を復元し、四角形に青い純色のブラシを塗りつぶします。
結果は、左側に赤で塗りつぶされた未翻訳の四角形と、フォームの右側に青で塗りつぶされた変換された四角形です。
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
注釈
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 メソッドによって) スタックに配置されたすべての情報ブロックがスタックから削除されます。