クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
.NET 開発
以前のバージョン
.NET Framework SDK 2.0
System.Drawing
Graphics クラス
Graphics メソッド
 Restore メソッド

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2005/.NET Framework 2.0

その他のバージョンについては、以下の情報を参照してください。
.NET Framework クラス ライブラリ
Graphics.Restore メソッド

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

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

Visual Basic (宣言)
Public Sub Restore ( _
    gstate As GraphicsState _
)
Visual Basic (使用法)
Dim instance As Graphics
Dim gstate As GraphicsState

instance.Restore(gstate)
C#
public void Restore (
    GraphicsState gstate
)
C++
public:
void Restore (
    GraphicsState^ gstate
)
J#
public void Restore (
    GraphicsState gstate
)
JScript
public function Restore (
    gstate : GraphicsState
)

パラメータ

gstate

この Graphics を復元したときの状態を表す GraphicsState

GraphicsSave メソッドを呼び出すと、Graphics の状態を保持している情報ブロックがスタックに格納されます。Save メソッドは、その情報ブロックを識別する GraphicsState を返します。識別対象の GraphicsStateRestore メソッドに渡すと、その情報ブロックはスタックから削除され、GraphicsSave メソッド呼び出し時の状態に復元するために使用されます。Save メソッドを呼び出して返された GraphicsStateRestore メソッドに渡すことができるのは、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 が必要です。このコードは次のアクションを実行します。

  • ベクタ (100, 0) で Windows フォームのワールド変換を平行移動します。

  • フォームのグラフィックスの状態を保存します。

  • フォームのワールド変換を単位行列にリセットし、四角形を赤いソリッド ブラシで塗りつぶします。

  • 平行移動したグラフィックスの状態を復元し、2 つ目の四角形を青いソリッド ブラシで塗りつぶします。

赤で塗りつぶされた平行移動していない四角形と、青で塗りつぶされた平行移動済みの四角形が生成されます。

Visual Basic
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
C#
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);
}

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

.NET Framework

サポート対象 : 2.0、1.1、1.0
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker