Graphics.BeginContainer 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
以這個 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 方法來建立巢狀圖形容器。 圖形容器會保留圖形狀態,例如轉換、裁剪區域和轉譯屬性。
當您呼叫 BeginContainer 的 Graphics方法時,保留 狀態 Graphics 的資訊區塊會放在堆棧上。 方法會 BeginContainer 傳 GraphicsContainer 回 ,識別該資訊區塊。 當您將識別對象傳遞至 EndContainer 方法時,資訊區塊會從堆疊中移除,並用來將 還原 Graphics 至方法呼叫時 BeginContainer 的狀態。
容器可以是巢狀的;也就是說,您可以在呼叫 方法之前多次呼叫 BeginContainerEndContainer 方法。 每次呼叫 BeginContainer 方法時,都會將資訊區塊放在堆疊上,而您會收到 GraphicsContainer 資訊區塊的 。 當您將其中一個對象傳遞至 EndContainer 方法時,Graphics會傳回傳回該特定GraphicsContainer之BeginContainer方法呼叫時的狀態。 該方法 BeginContainer 呼叫放置在堆疊上的資訊區塊會從堆疊中移除,而且也會移除該方法呼叫之後 BeginContainer 在該堆棧上放置的所有資訊區塊。
呼叫 方法時 Save ,會將資訊區塊放在與呼叫 BeginContainer 方法相同的堆疊上。 就像方法呼叫與BeginContainer方法呼叫配對一樣EndContainer,Restore方法呼叫會與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
參數
- 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 方法來建立巢狀圖形容器。 圖形容器會保留圖形狀態,例如轉換、裁剪區域和轉譯屬性。
當您呼叫 BeginContainer 的 Graphics方法時,保留 狀態 Graphics 的資訊區塊會放在堆棧上。 方法會 BeginContainer 傳 GraphicsContainer 回 ,識別該資訊區塊。 當您將識別對象傳遞至 EndContainer 方法時,資訊區塊會從堆疊中移除,並用來將 還原 Graphics 至方法呼叫時 BeginContainer 的狀態。
容器可以是巢狀的;也就是說,您可以在呼叫 方法之前多次呼叫 BeginContainerEndContainer 方法。 每次呼叫 BeginContainer 方法時,都會將資訊區塊放在堆疊上,而您會收到 GraphicsContainer 資訊區塊的 。 當您將其中一個對象傳遞至 EndContainer 方法時,Graphics會傳回傳回該特定GraphicsContainer之BeginContainer方法呼叫時的狀態。 該方法 BeginContainer 呼叫放置在堆疊上的資訊區塊會從堆疊中移除,而且也會移除該方法呼叫之後 BeginContainer 在該堆棧上放置的所有資訊區塊。
呼叫 方法時 Save ,會將資訊區塊放在與呼叫 BeginContainer 方法相同的堆疊上。 就像方法呼叫與BeginContainer方法呼叫配對一樣EndContainer,Restore方法呼叫會與Save方法呼叫配對。
當您呼叫 EndContainer 方法時,方法 (堆疊上 Save 放置的所有資訊區塊,或 BeginContainer 方法) 方法的對應呼叫 BeginContainer 之後,都會從堆疊中移除。 同樣地,當您呼叫 Restore 方法時,方法 (堆疊上 Save 放置的所有資訊區塊,或 BeginContainer 方法) 方法的對應呼叫 Save 之後,都會從堆疊中移除。
這個方法會指定具有 dstrect
和 srcrect
參數之新圖形容器的縮放轉換。 小數字數等於套用至 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 方法來建立巢狀圖形容器。 圖形容器會保留圖形狀態,例如轉換、裁剪區域和轉譯屬性。
當您呼叫 BeginContainer 的 Graphics方法時,保留 狀態 Graphics 的資訊區塊會放在堆棧上。 方法會 BeginContainer 傳 GraphicsContainer 回 ,識別該資訊區塊。 當您將識別對象傳遞至 EndContainer 方法時,資訊區塊會從堆疊中移除,並用來將 還原 Graphics 至方法呼叫時 BeginContainer 的狀態。
容器可以是巢狀的;也就是說,您可以在呼叫 方法之前多次呼叫 BeginContainerEndContainer 方法。 每次呼叫 BeginContainer 方法時,都會將資訊區塊放在堆疊上,而您會收到 GraphicsContainer 資訊區塊的 。 當您將其中一個對象傳遞至 EndContainer 方法時,Graphics會傳回傳回該特定GraphicsContainer之BeginContainer方法呼叫時的狀態。 該方法 BeginContainer 呼叫放置在堆疊上的資訊區塊會從堆疊中移除,而且也會移除該方法呼叫之後 BeginContainer 在該堆棧上放置的所有資訊區塊。
呼叫 方法時 Save ,會將資訊區塊放在與呼叫 BeginContainer 方法相同的堆疊上。 就像方法呼叫與BeginContainer方法呼叫配對一樣EndContainer,Restore方法呼叫會與Save方法呼叫配對。
當您呼叫 EndContainer 方法時,方法 (堆疊上 Save
放置的所有資訊區塊,或 BeginContainer 方法) 方法的對應呼叫 BeginContainer 之後,都會從堆疊中移除。 同樣地,當您呼叫 Restore 方法時,方法 (堆疊上 Save 放置的所有資訊區塊,或 BeginContainer 方法) 方法的對應呼叫 Save 之後,都會從堆疊中移除。
這個方法會指定具有 dstrect
和 srcrect
參數之新圖形容器的縮放轉換。 小數字數等於套用至 srcrect
時的轉換,會產生 dstrect
。
方法所 BeginContainer 建立的圖形狀態包含預設圖形狀態的轉譯品質;呼叫 方法時,任何轉譯質量狀態會變更為預設值。
適用於
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應