Graphics.BeginContainerとは? わかりやすく解説

Graphics.BeginContainer メソッド ()

この Graphics の現在の状態でグラフィックス コンテナを保存し、新しいグラフィックス コンテナを開いて使用します。

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

Public Function BeginContainer As
 GraphicsContainer
Dim instance As Graphics
Dim returnValue As GraphicsContainer

returnValue = instance.BeginContainer
public GraphicsContainer BeginContainer ()
public:
GraphicsContainer^ BeginContainer ()
public GraphicsContainer BeginContainer ()
public function BeginContainer () : GraphicsContainer

戻り値
このメソッドは、メソッドが呼び出された時点での Graphics の状態を表す GraphicsContainer を返します。

解説解説

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

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

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

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

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

BeginContainer メソッドが確立するグラフィックスの状態には、既定のグラフィックスの状態のレンダリング品質が含まれます。メソッドの呼び出し以前にレンダリング品質の状態を変更していた場合は、既定値にリセットされます。

使用例使用例

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

緑の四角形が同じサイズの赤い四角形の上に重ねられます。

Public Sub BeginContainerVoid(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
public void BeginContainerVoid(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:
   void BeginContainerVoid( 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 );
   }
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Graphics.BeginContainer メソッド (RectangleF, RectangleF, GraphicsUnit)

この Graphics の現在の状態でグラフィックス コンテナを保存し、指定したスケール変換を行った新しいグラフィックス コンテナを開いて使用します。

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

Public Function BeginContainer ( _
    dstrect As RectangleF, _
    srcrect As RectangleF, _
    unit As GraphicsUnit _
) As GraphicsContainer
Dim instance As Graphics
Dim dstrect As RectangleF
Dim srcrect As RectangleF
Dim unit As GraphicsUnit
Dim returnValue As GraphicsContainer

returnValue = instance.BeginContainer(dstrect, srcrect, unit)
public GraphicsContainer BeginContainer (
    RectangleF dstrect,
    RectangleF srcrect,
    GraphicsUnit unit
)
public:
GraphicsContainer^ BeginContainer (
    RectangleF dstrect, 
    RectangleF srcrect, 
    GraphicsUnit unit
)
public GraphicsContainer BeginContainer (
    RectangleF dstrect, 
    RectangleF srcrect, 
    GraphicsUnit unit
)
public function BeginContainer (
    dstrect : RectangleF, 
    srcrect : RectangleF, 
    unit : GraphicsUnit
) : GraphicsContainer

パラメータ

dstrect

srcrect パラメータと共に新しいグラフィックス コンテナのスケール変換を指定する RectangleF 構造体。

srcrect

dstrect パラメータと共に新しいグラフィックス コンテナのスケール変換を指定する RectangleF 構造体。

unit

コンテナの長さの単位を指定する GraphicsUnit 列挙体のメンバ。

戻り値
このメソッドは、メソッドが呼び出された時点での Graphics の状態を表す GraphicsContainer を返します。

解説解説

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

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

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

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

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

このメソッドは、新しいグラフィックス コンテナのスケール変換を dstrect パラメータと srcrect パラメータで指定します。スケールは、srcrect に適用する場合、dstrect を生成する変換と等価です。

BeginContainer メソッドが確立するグラフィックスの状態には、既定のグラフィックスの状態のレンダリング品質が含まれます。メソッドの呼び出し以前にレンダリング品質の状態を変更していた場合は、既定値にリセットされます。

使用例使用例

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

緑の四角形がそれよりも小さい赤い四角形の上に重ねられます。

Public Sub BeginContainerRectangleF(ByVal
 e As PaintEventArgs)

    ' Define transformation for container.
    Dim srcRect As New RectangleF(0.0F,
 0.0F, 200.0F, 200.0F)
    Dim destRect As New
 RectangleF(100.0F, 100.0F, 150.0F, 150.0F)

    ' Begin graphics container.
    Dim containerState As GraphicsContainer
 = _
    e.Graphics.BeginContainer(destRect, srcRect, GraphicsUnit.Pixel)

    ' Fill red rectangle in container.
    e.Graphics.FillRectangle(New SolidBrush(Color.Red), 0.0F,
 0.0F, _
    200.0F, 200.0F)

    ' End graphics container.
    e.Graphics.EndContainer(containerState)

    ' Fill untransformed rectangle with green.
    e.Graphics.FillRectangle(New SolidBrush(Color.Green), 0.0F,
 0.0F, _
    200.0F, 200.0F)
End Sub
public void BeginContainerRectangleF(PaintEventArgs
 e)
{
    // Define transformation for container.
    RectangleF srcRect = new RectangleF(0.0F, 0.0F, 200.0F, 200.0F);
    RectangleF destRect = new RectangleF(100.0F, 100.0F, 150.0F,
 150.0F);
             
    // Begin graphics container.
    GraphicsContainer containerState = e.Graphics.BeginContainer(
        destRect, srcRect,
        GraphicsUnit.Pixel);
             
    // Fill red rectangle in container.
    e.Graphics.FillRectangle(new SolidBrush(Color.Red), 0.0F,
 0.0F, 200.0F, 200.0F);
             
    // End graphics container.
    e.Graphics.EndContainer(containerState);
             
    // Fill untransformed rectangle with green.
    e.Graphics.FillRectangle(new SolidBrush(Color.Green), 0.0F,
 0.0F, 200.0F, 200.0F);
}
public:
   void BeginContainerRectangleF( PaintEventArgs^ e )
   {
      // Define transformation for container.
      RectangleF srcRect = RectangleF(0.0F,0.0F,200.0F,200.0F);
      RectangleF destRect = RectangleF(100.0F,100.0F,150.0F,150.0F);

      // Begin graphics container.
      GraphicsContainer^ containerState = e->Graphics->BeginContainer( destRect,
 srcRect, GraphicsUnit::Pixel );

      // Fill red rectangle in container.
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Red ), 0.0F, 0.0F,
 200.0F, 200.0F );

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

      // Fill untransformed rectangle with green.
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Green ), 0.0F, 0.0F,
 200.0F, 200.0F );
   }
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Graphics.BeginContainer メソッド (Rectangle, Rectangle, GraphicsUnit)

この Graphics の現在の状態でグラフィックス コンテナを保存し、指定したスケール変換を行った新しいグラフィックス コンテナを開いて使用します。

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

Public Function BeginContainer ( _
    dstrect As Rectangle, _
    srcrect As Rectangle, _
    unit As GraphicsUnit _
) As GraphicsContainer
Dim instance As Graphics
Dim dstrect As Rectangle
Dim srcrect As Rectangle
Dim unit As GraphicsUnit
Dim returnValue As GraphicsContainer

returnValue = instance.BeginContainer(dstrect, srcrect, unit)
public GraphicsContainer BeginContainer (
    Rectangle dstrect,
    Rectangle srcrect,
    GraphicsUnit unit
)
public:
GraphicsContainer^ BeginContainer (
    Rectangle dstrect, 
    Rectangle srcrect, 
    GraphicsUnit unit
)
public GraphicsContainer BeginContainer (
    Rectangle dstrect, 
    Rectangle srcrect, 
    GraphicsUnit unit
)
public function BeginContainer (
    dstrect : Rectangle, 
    srcrect : Rectangle, 
    unit : GraphicsUnit
) : GraphicsContainer

パラメータ

dstrect

srcrect パラメータと共にコンテナのスケール変換を指定する Rectangle 構造体。

srcrect

dstrect パラメータと共にコンテナのスケール変換を指定する Rectangle 構造体。

unit

コンテナの長さの単位を指定する GraphicsUnit 列挙体のメンバ。

戻り値
このメソッドは、メソッドが呼び出された時点での Graphics の状態を表す GraphicsContainer を返します。

解説解説

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

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

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

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

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

このメソッドは、新しいグラフィックス コンテナのスケール変換を dstrect パラメータと srcrect パラメータで指定します。スケールは、srcrect に適用する場合、dstrect を生成する変換と等価です。

BeginContainer メソッドが確立するグラフィックスの状態には、既定のグラフィックスの状態のレンダリング品質が含まれます。メソッドの呼び出し以前にレンダリング品質の状態を変更していた場合は、既定値にリセットされます。

使用例使用例

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

緑の四角形がそれよりも小さい赤い四角形の上に重ねられます。

Public Sub BeginContainerRectangle(ByVal
 e As PaintEventArgs)

    ' Define transformation for container.
    Dim srcRect As New Rectangle(0,
 0, 200, 200)
    Dim destRect As New
 Rectangle(100, 100, 150, 150)

    ' Begin graphics container.
    Dim containerState As GraphicsContainer
 = _
    e.Graphics.BeginContainer(destRect, srcRect, GraphicsUnit.Pixel)

    ' Fill red rectangle in container.
    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
public void BeginContainerRectangle(PaintEventArgs
 e)
{
    // Define transformation for container.
    Rectangle srcRect = new Rectangle(0, 0, 200, 200);
    Rectangle destRect = new Rectangle(100, 100, 150, 150);
             
    // Begin graphics container.
    GraphicsContainer containerState = e.Graphics.BeginContainer(
        destRect, srcRect,
        GraphicsUnit.Pixel);
             
    // Fill red rectangle in container.
    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:
   void BeginContainerRectangle( PaintEventArgs^ e )
   {
      // Define transformation for container.
      Rectangle srcRect = Rectangle(0,0,200,200);
      Rectangle destRect = Rectangle(100,100,150,150);

      // Begin graphics container.
      GraphicsContainer^ containerState = e->Graphics->BeginContainer( destRect,
 srcRect, GraphicsUnit::Pixel );

      // Fill red rectangle in container.
      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 );
   }
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Graphics.BeginContainer メソッド




英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

「Graphics.BeginContainer」の関連用語

Graphics.BeginContainerのお隣キーワード

   

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



Graphics.BeginContainerのページの著作権

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

©2026 GRAS Group, Inc.RSS