Graphics.EndContainer(GraphicsContainer) Graphics.EndContainer(GraphicsContainer) Graphics.EndContainer(GraphicsContainer) Graphics.EndContainer(GraphicsContainer) Method


現在のグラフィックス コンテナーを閉じ、この Graphics の状態を、BeginContainer() メソッドを呼び出すことによって保存されていた状態に復元します。Closes the current graphics container and restores the state of this Graphics to the state saved by a call to the BeginContainer() method.

 void EndContainer(System::Drawing::Drawing2D::GraphicsContainer ^ container);
public void EndContainer (System.Drawing.Drawing2D.GraphicsContainer container);
member this.EndContainer : System.Drawing.Drawing2D.GraphicsContainer -> unit
Public Sub EndContainer (container As GraphicsContainer)


GraphicsContainer GraphicsContainer GraphicsContainer GraphicsContainer

このメソッドで復元されるコンテナーを表す GraphicsContainerGraphicsContainer that represents the container this method restores.

次のコード例は、Windows フォームで使用するために設計されています。 また必要がPaintEventArgs e、はのパラメーター、Paintイベント ハンドラー。The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. コードは、次のアクションを実行します。The code performs the following actions:

  • 新しいグラフィックス コンテナーを開き、古いコンテナーを保存します。Opens a new graphics container and saves the old container.

  • コンテナーにワールド座標に変換します。Translates the world coordinates in the container.

  • 赤い四角形を塗りつぶします、(の座標を変換、) の新しいコンテナー。Fills a red rectangle in the (translated coordinates of the) new container.

  • 新しいコンテナーを終了し、保存されているコンテナーを復元します。Closes the new container and restores the saved container.

  • 保存されているコンテナーの (無変換の座標) 緑色の四角形を塗りつぶします。Fills a green rectangle (to the untranslated coordinates) of the saved container.

同じサイズの赤い四角形を上に重ねられます緑の四角形になります。The result is a green rectangle that overlies a red rectangle of the same size.

   void EndContainerState( PaintEventArgs^ e )
      // Begin graphics container.
      GraphicsContainer^ containerState = e->Graphics->BeginContainer();

      // Translate world transformation.
      e->Graphics->TranslateTransform( 100.0F, 100.0F );

      // Fill translated rectangle in container with red.
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Red ), 0, 0, 200, 200 );

      // End graphics container.
      e->Graphics->EndContainer( containerState );

      // Fill untransformed rectangle with green.
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Green ), 0, 0, 200, 200 );
public void EndContainerState(PaintEventArgs e)
    // Begin graphics container.
    GraphicsContainer containerState = e.Graphics.BeginContainer();
    // Translate world transformation.
    e.Graphics.TranslateTransform(100.0F, 100.0F);
    // Fill translated rectangle in container with red.
    e.Graphics.FillRectangle(new SolidBrush(Color.Red), 0, 0, 200, 200);
    // End graphics container.
    // Fill untransformed rectangle with green.
    e.Graphics.FillRectangle(new SolidBrush(Color.Green), 0, 0, 200, 200);
Public Sub EndContainerState(ByVal e As PaintEventArgs)

    ' Begin graphics container.
    Dim containerState As GraphicsContainer = _

    ' Translate world transformation.
    e.Graphics.TranslateTransform(100.0F, 100.0F)

    ' Fill translated rectangle in container with red.
    e.Graphics.FillRectangle(New SolidBrush(Color.Red), 0, 0, _
    200, 200)

    ' End graphics container.

    ' Fill untransformed rectangle with green.
    e.Graphics.FillRectangle(New SolidBrush(Color.Green), 0, 0, _
    200, 200)
End Sub


このメソッドを使用、BeginContainer入れ子になったグラフィックス コンテナーを作成します。Use this method with the BeginContainer method to create nested graphics containers. グラフィックス コンテナーは、変換、クリッピング領域、およびレンダリング プロパティなどのグラフィックスの状態を保持します。Graphics containers retain graphics state, such as transformation, clipping region, and rendering properties.

呼び出すと、BeginContainerのメソッド、Graphicsの状態を保持する情報ブロック、Graphicsは、スタックに配置します。When you call the BeginContainer method of a Graphics, an information block that holds the state of the Graphics is put on a stack. BeginContainerメソッドを返します。 をGraphicsContainer情報ブロックを識別します。The BeginContainer method returns a GraphicsContainer that identifies that information block. 識別するオブジェクトを渡す場合、EndContainerメソッド情報ブロックは、スタックから削除され、復元するために使用、Graphicsの時点での状態をBeginContainerメソッドの呼び出し。When you pass the identifying object to the EndContainer method, the information block is removed from the stack and is used to restore the Graphics to the state it was in at the time of the BeginContainer method call.

コンテナーを入れ子になんだことができます。つまり、呼び出すことができます、BeginContainerメソッドを複数回呼び出す前に、EndContainerメソッド。Containers can be nested; that is, you can call the BeginContainer method several times before you call the EndContainer method. 呼び出すたびに、BeginContainerメソッド情報ブロックは、スタックに配置し、表示されたら、GraphicsContainer情報ブロックの。Each time you call the BeginContainer method, an information block is put on the stack, and you receive a GraphicsContainer for the information block. それらのオブジェクトのいずれかを渡す場合、EndContainerメソッド、Graphicsの時点での状態に返される、BeginContainerメソッドの呼び出しのGraphicsContainerします。When you pass one of those objects to the EndContainer method, the Graphics is returned to the state it was in at the time of the BeginContainer method call that returned that particular GraphicsContainer. 情報ブロックがそのスタックに配置BeginContainerメソッドの呼び出しは、スタックから削除され、その後、情報のすべてのブロックがそのスタックに配置BeginContainerメソッドの呼び出しも削除されます。The information block placed on the stack by that BeginContainer method call is removed from the stack, and all information blocks placed on that stack after that BeginContainer method call are also removed.

呼び出し、Saveメソッドの場所情報ブロック、スタックへの呼び出しと同じで、BeginContainerメソッド。Calls to the Save method place information blocks on the same stack as calls to the BeginContainer method. 同様、EndContainerメソッドの呼び出しとペアになり、BeginContainerメソッドの呼び出しをRestoreメソッドの呼び出しとペアになり、Saveメソッドの呼び出し。Just as an EndContainer method call is paired with a BeginContainer method call, a Restore method call is paired with a Save method call.

呼び出すと、EndContainerメソッドでは、すべての情報ブロックが、スタックに配置 (によって、Saveメソッドか、または、BeginContainerメソッド) に対応する呼び出しの後に、BeginContainerメソッドは、スタックから削除されます。When you call the EndContainer method, all information blocks placed on the stack (by the Save method or by the BeginContainer method) after the corresponding call to the BeginContainer method are removed from the stack. 同様に、呼び出し、Restoreメソッドでは、すべての情報ブロックが、スタックに配置 (によって、Saveメソッドか、または、BeginContainerメソッド) に対応する呼び出しの後に、Saveメソッドは、スタックから削除されます。Likewise, when you call the Restore method, all information blocks placed on the stack (by the Save method or by the BeginContainer method) after the corresponding call to the Save method are removed from the stack.