Graphics.Save メソッド
アセンブリ: System.Drawing (system.drawing.dll 内)

Dim instance As Graphics Dim returnValue As GraphicsState returnValue = instance.Save
このメソッドは、この Graphics の保存状態を表す GraphicsState を返します。

Graphics の Save メソッドを呼び出すと、Graphics の状態を保持している情報ブロックがスタックに格納されます。Save メソッドは、その情報ブロックを識別する GraphicsState を返します。識別対象の GraphicsState を Restore メソッドに渡すと、その情報ブロックはスタックから削除され、Graphics を Save メソッド呼び出し時の状態に復元するために使用されます。Save メソッドを呼び出して返された GraphicsState を Restore メソッドに渡すことができるのは、1 回だけです。
Save メソッドの呼び出しは入れ子にできます。つまり Restore メソッドを呼び出す前に Save メソッドを複数回呼び出すことができます。Save メソッドを呼び出すたびに、情報ブロックがスタックに格納され、その情報ブロックの GraphicsState を受け取ります。これらのオブジェクトの 1 つを Restore メソッドに渡すと、Graphics は、その GraphicsState を返した Save メソッドの呼び出し時の状態に戻ります。その Save メソッドの呼び出しによってスタックに置かれた情報ブロックはスタックから削除されます。さらに、Save メソッドの呼び出し後にスタックに置かれたすべての情報ブロックも削除されます。
BeginContainer メソッドの呼び出しは、Save メソッドの呼び出しと同じスタックに情報ブロックを配置します。Restore 呼び出しが Save 呼び出しと対になっているのと同様に、EndContainer メソッド呼び出しは BeginContainer メソッド呼び出しと対になっています。
Restore メソッドを呼び出すと、対応する BeginContainer メソッドの呼び出し後に (Save メソッドまたは Save メソッドによって) スタックに格納されたすべての情報ブロックが、スタックから削除されます。同様に、EndContainer メソッドを呼び出すと、対応する BeginContainer メソッドの呼び出し後に (Save メソッドまたは BeginContainer メソッドによって) スタックに格納されたすべての情報ブロックが、スタックから削除されます。

次の例は、Windows フォームでの使用を意図してデザインされており、Paint イベント ハンドラのパラメータである PaintEventArgse が必要です。このコードは次のアクションを実行します。
赤で塗りつぶされた平行移動していない四角形がフォームの左側に、青で塗りつぶされた平行移動済みの四角形がフォームの右側に生成されます。
Public 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
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(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); }

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からGraphics.Save メソッドを検索する場合は、下記のリンクをクリックしてください。

- Graphics.Save メソッドのページへのリンク