Graphics.BeginContainer 方法

定義

以這個 Graphics 的目前狀態儲存圖形容器,並開啟及使用新的圖形容器。

多載

BeginContainer()

以這個 Graphics 的目前狀態儲存圖形容器,並開啟及使用新的圖形容器。

BeginContainer(Rectangle, Rectangle, GraphicsUnit)

使用這個 Graphics 的目前狀態儲存圖形容器,並使用指定之縮放變換開啟和使用新的圖形容器。

BeginContainer(RectangleF, RectangleF, GraphicsUnit)

使用這個 Graphics 的目前狀態儲存圖形容器,並使用指定之縮放變換開啟和使用新的圖形容器。

BeginContainer()

來源:
Graphics.cs
來源:
Graphics.cs
來源:
Graphics.cs

以這個 Graphics 的目前狀態儲存圖形容器,並開啟及使用新的圖形容器。

public:
 System::Drawing::Drawing2D::GraphicsContainer ^ BeginContainer();
public System.Drawing.Drawing2D.GraphicsContainer BeginContainer ();
member this.BeginContainer : unit -> System.Drawing.Drawing2D.GraphicsContainer
Public Function BeginContainer () As GraphicsContainer

傳回

這個方法會傳回 GraphicsContainer,表示在方法呼叫時這個 Graphics 的狀態。

範例

下列程式代碼範例是設計來搭配 Windows Forms 使用,而且需要 PaintEventArgse,這是事件處理程序的參數Paint。 此程式碼會執行下列動作:

  • 開啟新的圖形容器,並儲存舊的容器。

  • 轉譯容器中的世界座標。

  • 在) 新容器的 (轉譯座標中填滿紅色矩形。

  • 關閉新的容器,並還原已儲存的容器。

  • 將綠色矩形填入已儲存容器) 的未轉譯座標 (。

結果是綠色矩形,其會覆寫相同大小的紅色矩形。

private:
   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 );
   }
private 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);
}
Private 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

備註

使用此方法搭配 EndContainer 方法來建立巢狀圖形容器。 圖形容器會保留圖形狀態,例如轉換、裁剪區域和轉譯屬性。

當您呼叫 BeginContainerGraphics方法時,保留 狀態 Graphics 的資訊區塊會放在堆棧上。 方法會 BeginContainerGraphicsContainer 回 ,識別該資訊區塊。 當您將識別對象傳遞至 EndContainer 方法時,資訊區塊會從堆疊中移除,並用來將 還原 Graphics 至方法呼叫時 BeginContainer 的狀態。

容器可以是巢狀的;也就是說,您可以在呼叫 方法之前多次呼叫 BeginContainerEndContainer 方法。 每次呼叫 BeginContainer 方法時,都會將資訊區塊放在堆疊上,而您會收到 GraphicsContainer 資訊區塊的 。 當您將其中一個對象傳遞至 EndContainer 方法時,Graphics會傳回傳回該特定GraphicsContainerBeginContainer方法呼叫時的狀態。 該方法 BeginContainer 呼叫放置在堆疊上的資訊區塊會從堆疊中移除,而且也會移除該方法呼叫之後 BeginContainer 在該堆棧上放置的所有資訊區塊。

呼叫 方法時 Save ,會將資訊區塊放在與呼叫 BeginContainer 方法相同的堆疊上。 就像方法呼叫與BeginContainer方法呼叫配對一樣EndContainerRestore方法呼叫會與Save方法呼叫配對。

當您呼叫 EndContainer 方法時,方法 (堆疊上 Save 放置的所有資訊區塊,或 BeginContainer 方法) 方法的對應呼叫 BeginContainer 之後,都會從堆疊中移除。 同樣地,當您呼叫 Restore 方法時,方法 (堆疊上 Save 放置的所有資訊區塊,或 BeginContainer 方法) 方法的對應呼叫 Save 之後,都會從堆疊中移除。

方法所 BeginContainer 建立的圖形狀態包含預設圖形狀態的轉譯品質;呼叫 方法時,任何轉譯質量狀態會變更為預設值。

適用於

BeginContainer(Rectangle, Rectangle, GraphicsUnit)

來源:
Graphics.cs
來源:
Graphics.cs
來源:
Graphics.cs

使用這個 Graphics 的目前狀態儲存圖形容器,並使用指定之縮放變換開啟和使用新的圖形容器。

public:
 System::Drawing::Drawing2D::GraphicsContainer ^ BeginContainer(System::Drawing::Rectangle dstrect, System::Drawing::Rectangle srcrect, System::Drawing::GraphicsUnit unit);
public System.Drawing.Drawing2D.GraphicsContainer BeginContainer (System.Drawing.Rectangle dstrect, System.Drawing.Rectangle srcrect, System.Drawing.GraphicsUnit unit);
member this.BeginContainer : System.Drawing.Rectangle * System.Drawing.Rectangle * System.Drawing.GraphicsUnit -> System.Drawing.Drawing2D.GraphicsContainer
Public Function BeginContainer (dstrect As Rectangle, srcrect As Rectangle, unit As GraphicsUnit) As GraphicsContainer

參數

dstrect
Rectangle

Rectangle 結構,和 srcrect 參數一起指定容器的縮放變換。

srcrect
Rectangle

Rectangle 結構,和 dstrect 參數一起指定容器的縮放變換。

unit
GraphicsUnit

GraphicsUnit 列舉型別的成員,指定容器的測量單位。

傳回

這個方法會傳回 GraphicsContainer,表示在方法呼叫時這個 Graphics 的狀態。

範例

下列程式代碼範例是設計來搭配 Windows Forms 使用,而且需要 PaintEventArgse,這是事件處理程序的參數Paint。 此程式碼會執行下列動作:

  • 建立兩個矩形來指定新容器的縮放轉換。

  • 開啟新的圖形容器,並儲存舊的容器。

  • 在) 新容器的 (縮放座標中填滿紅色矩形。

  • 關閉新的容器,並還原已儲存的容器。

  • 將綠色矩形填滿 (至已儲存容器的未調整座標) 。

結果是綠色矩形,會覆寫較小的紅色矩形。

private:
   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 );
   }
private 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);
}
Private 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

備註

使用此方法搭配 EndContainer 方法來建立巢狀圖形容器。 圖形容器會保留圖形狀態,例如轉換、裁剪區域和轉譯屬性。

當您呼叫 BeginContainerGraphics方法時,保留 狀態 Graphics 的資訊區塊會放在堆棧上。 方法會 BeginContainerGraphicsContainer 回 ,識別該資訊區塊。 當您將識別對象傳遞至 EndContainer 方法時,資訊區塊會從堆疊中移除,並用來將 還原 Graphics 至方法呼叫時 BeginContainer 的狀態。

容器可以是巢狀的;也就是說,您可以在呼叫 方法之前多次呼叫 BeginContainerEndContainer 方法。 每次呼叫 BeginContainer 方法時,都會將資訊區塊放在堆疊上,而您會收到 GraphicsContainer 資訊區塊的 。 當您將其中一個對象傳遞至 EndContainer 方法時,Graphics會傳回傳回該特定GraphicsContainerBeginContainer方法呼叫時的狀態。 該方法 BeginContainer 呼叫放置在堆疊上的資訊區塊會從堆疊中移除,而且也會移除該方法呼叫之後 BeginContainer 在該堆棧上放置的所有資訊區塊。

呼叫 方法時 Save ,會將資訊區塊放在與呼叫 BeginContainer 方法相同的堆疊上。 就像方法呼叫與BeginContainer方法呼叫配對一樣EndContainerRestore方法呼叫會與Save方法呼叫配對。

當您呼叫 EndContainer 方法時,方法 (堆疊上 Save 放置的所有資訊區塊,或 BeginContainer 方法) 方法的對應呼叫 BeginContainer 之後,都會從堆疊中移除。 同樣地,當您呼叫 Restore 方法時,方法 (堆疊上 Save 放置的所有資訊區塊,或 BeginContainer 方法) 方法的對應呼叫 Save 之後,都會從堆疊中移除。

這個方法會指定具有 dstrectsrcrect 參數之新圖形容器的縮放轉換。 小數字數等於套用至 srcrect時的轉換,會產生 dstrect

方法所 BeginContainer 建立的圖形狀態包含預設圖形狀態的轉譯品質;呼叫 方法時,任何轉譯質量狀態會變更為預設值。

適用於

BeginContainer(RectangleF, RectangleF, GraphicsUnit)

來源:
Graphics.cs
來源:
Graphics.cs
來源:
Graphics.cs

使用這個 Graphics 的目前狀態儲存圖形容器,並使用指定之縮放變換開啟和使用新的圖形容器。

public:
 System::Drawing::Drawing2D::GraphicsContainer ^ BeginContainer(System::Drawing::RectangleF dstrect, System::Drawing::RectangleF srcrect, System::Drawing::GraphicsUnit unit);
public System.Drawing.Drawing2D.GraphicsContainer BeginContainer (System.Drawing.RectangleF dstrect, System.Drawing.RectangleF srcrect, System.Drawing.GraphicsUnit unit);
member this.BeginContainer : System.Drawing.RectangleF * System.Drawing.RectangleF * System.Drawing.GraphicsUnit -> System.Drawing.Drawing2D.GraphicsContainer
Public Function BeginContainer (dstrect As RectangleF, srcrect As RectangleF, unit As GraphicsUnit) As GraphicsContainer

參數

dstrect
RectangleF

RectangleF 結構,和 srcrect 參數一起指定新圖形容器的縮放變換。

srcrect
RectangleF

RectangleF 結構,和 dstrect 參數一起指定新圖形容器的縮放變換。

unit
GraphicsUnit

GraphicsUnit 列舉型別的成員,指定容器的測量單位。

傳回

這個方法會傳回 GraphicsContainer,表示在方法呼叫時這個 Graphics 的狀態。

範例

下列程式代碼範例是設計來搭配 Windows Forms 使用,而且需要 PaintEventArgse,這是事件處理程序的參數Paint。 此程式碼會執行下列動作:

  • 建立兩個矩形來指定新容器的縮放轉換。

  • 開啟新的圖形容器,並儲存舊的容器。

  • 在) 新容器的 (縮放座標中填滿紅色矩形。

  • 關閉新的容器,並還原已儲存的容器。

  • 將綠色矩形填滿 (至已儲存容器的未調整座標) 。

結果是綠色矩形,會覆寫較小的紅色矩形。

private:
   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 );
   }
private 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);
}
Private 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

備註

使用此方法搭配 EndContainer 方法來建立巢狀圖形容器。 圖形容器會保留圖形狀態,例如轉換、裁剪區域和轉譯屬性。

當您呼叫 BeginContainerGraphics方法時,保留 狀態 Graphics 的資訊區塊會放在堆棧上。 方法會 BeginContainerGraphicsContainer 回 ,識別該資訊區塊。 當您將識別對象傳遞至 EndContainer 方法時,資訊區塊會從堆疊中移除,並用來將 還原 Graphics 至方法呼叫時 BeginContainer 的狀態。

容器可以是巢狀的;也就是說,您可以在呼叫 方法之前多次呼叫 BeginContainerEndContainer 方法。 每次呼叫 BeginContainer 方法時,都會將資訊區塊放在堆疊上,而您會收到 GraphicsContainer 資訊區塊的 。 當您將其中一個對象傳遞至 EndContainer 方法時,Graphics會傳回傳回該特定GraphicsContainerBeginContainer方法呼叫時的狀態。 該方法 BeginContainer 呼叫放置在堆疊上的資訊區塊會從堆疊中移除,而且也會移除該方法呼叫之後 BeginContainer 在該堆棧上放置的所有資訊區塊。

呼叫 方法時 Save ,會將資訊區塊放在與呼叫 BeginContainer 方法相同的堆疊上。 就像方法呼叫與BeginContainer方法呼叫配對一樣EndContainerRestore方法呼叫會與Save方法呼叫配對。

當您呼叫 EndContainer 方法時,方法 (堆疊上 Save 放置的所有資訊區塊,或 BeginContainer 方法) 方法的對應呼叫 BeginContainer 之後,都會從堆疊中移除。 同樣地,當您呼叫 Restore 方法時,方法 (堆疊上 Save 放置的所有資訊區塊,或 BeginContainer 方法) 方法的對應呼叫 Save 之後,都會從堆疊中移除。

這個方法會指定具有 dstrectsrcrect 參數之新圖形容器的縮放轉換。 小數字數等於套用至 srcrect時的轉換,會產生 dstrect

方法所 BeginContainer 建立的圖形狀態包含預設圖形狀態的轉譯品質;呼叫 方法時,任何轉譯質量狀態會變更為預設值。

適用於