Graphics.Restore メソッドとは? わかりやすく解説

Graphics.Restore メソッド

この Graphics の状態を GraphicsState によって表される状態に復元します。

名前空間: System.Drawing
アセンブリ: System.Drawing (system.drawing.dll 内)
構文構文

Public Sub Restore ( _
    gstate As GraphicsState _
)
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
)

パラメータ

gstate

この 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 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);
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「Graphics.Restore メソッド」の関連用語

Graphics.Restore メソッドのお隣キーワード

   

英語⇒日本語
日本語⇒英語
   



Graphics.Restore メソッドのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS