Graphics.EndContainer(GraphicsContainer) メソッド

定義

現在のグラフィックス コンテナーを閉じ、この Graphics の状態を、BeginContainer() メソッドを呼び出すことによって保存されていた状態に復元します。

public:
 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)

パラメーター

container
GraphicsContainer

このメソッドで復元されるコンテナーを表す GraphicsContainer

次のコード例は、Windows フォームで使用するように設計されており、イベント ハンドラーのPaintパラメーターである が必要PaintEventArgseです。 コードは、次のアクションを実行します。

  • 新しいグラフィックス コンテナーを開き、古いコンテナーを保存します。

  • コンテナー内のワールド座標を変換します。

  • (の翻訳された座標) 新しいコンテナーで赤い四角形を塗りつぶします。

  • 新しいコンテナーを閉じ、保存されたコンテナーを復元します。

  • 保存されたコンテナーの緑色の四角形 (変換されていない座標) を塗りつぶします。

結果は、同じサイズの赤い四角形の上に緑色の四角形が表示されます。

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( 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.
    e.Graphics.EndContainer(containerState);
             
    // 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 = _
    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.
    e.Graphics.EndContainer(containerState)

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

注釈

入れ子になったグラフィックス コンテナーを作成するには、 BeginContainer メソッドでこのメソッドを使用します。 グラフィックス コンテナーは、変換、クリッピング領域、レンダリング プロパティなどのグラフィックス状態を保持します。

の メソッドを BeginContainer 呼び出すと、 の Graphics状態 Graphics を保持する情報ブロックがスタックに配置されます。 メソッドは BeginContainerGraphicsContainer その情報ブロックを識別する を返します。 識別オブジェクトを メソッドにEndContainer渡すと、情報ブロックはスタックから削除され、メソッド呼び出し時BeginContainerの 状態に を復元Graphicsするために使用されます。

コンテナーは入れ子にすることができます。つまり、 メソッドを呼び出す前に BeginContainer 、 メソッドを複数回呼び出 EndContainer すことができます。 メソッドを BeginContainer 呼び出すたびに、情報ブロックがスタックに配置され、情報ブロックの を受け取ります GraphicsContainer 。 これらのオブジェクトの 1 つを メソッドにEndContainer渡すと、 は、Graphicsその特定GraphicsContainerの を返したメソッド呼び出し時の BeginContainer 状態に返されます。 その BeginContainer メソッド呼び出しによってスタックに配置された情報ブロックはスタックから削除され、その BeginContainer メソッド呼び出しの後にそのスタックに配置されたすべての情報ブロックも削除されます。

メソッドの呼び出しは、 Save メソッドの呼び出しと同じスタックに情報ブロックを BeginContainer 配置します。 メソッド呼び出しがメソッド呼び出しとペアになっているのとBeginContainer同様EndContainerに、Restoreメソッド呼び出しはメソッド呼び出しとSaveペアになります。

メソッドを呼び出すと、メソッドのEndContainer対応する呼び出しBeginContainerの後にスタックに配置されたすべての情報ブロック (Saveメソッドまたは メソッドによってBeginContainer) がスタックから削除されます。 同様に、 メソッドをRestore呼び出すと、 メソッドの対応する呼び出しの後に (メソッドまたは メソッドによってSaveBeginContainer) スタックにSave配置されたすべての情報ブロックがスタックから削除されます。

適用対象