Graphics.BeginContainer 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
保存具有此 Graphics 的当前状态的图形容器,然后打开并使用新的图形容器。
重载
BeginContainer() |
保存具有此 Graphics 的当前状态的图形容器,然后打开并使用新的图形容器。 |
BeginContainer(Rectangle, Rectangle, GraphicsUnit) |
保存具有此 Graphics 的当前状态的图形容器,然后打开并使用具有指定缩放变形的新图形容器。 |
BeginContainer(RectangleF, RectangleF, GraphicsUnit) |
保存具有此 Graphics 的当前状态的图形容器,然后打开并使用具有指定缩放变形的新图形容器。 |
BeginContainer()
- Source:
- Graphics.cs
- Source:
- Graphics.cs
- Source:
- 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 窗体 一起使用,它需要 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 的状态。
容器可以嵌套;也就是说,在调用 BeginContainer 方法之前,可以多次调用 EndContainer 方法。 每次调用 BeginContainer 方法时,都会在堆栈上放置一个信息块,并且你会收到 GraphicsContainer 信息块的 。 将其中一个对象传递给 EndContainer 方法时,Graphics将返回到返回该特定 GraphicsContainer的方法调用时BeginContainer它处于的状态。 该方法 BeginContainer 调用放置在堆栈上的信息块将从堆栈中删除,并且该方法调用后 BeginContainer 放置在该堆栈上的所有信息块也会被删除。
对 方法的调用将 Save 信息块与对 方法的调用放在同一堆栈上 BeginContainer 。 就像方法调用与方法调用配对一BeginContainerRestore样EndContainer,方法调用与Save方法调用配对。
调用 EndContainer 方法时,在相应调用BeginContainer方法后, (方法或BeginContainer方法) 放置在堆栈Save上的所有信息块都将从堆栈中删除。 同样,调用 Restore 方法时,在相应调用 Save 方法后, (方法或BeginContainer方法) 放置在堆栈Save上的所有信息块都会从堆栈中删除。
方法建立的 BeginContainer 图形状态包括默认图形状态的呈现质量;调用方法时存在的任何呈现质量状态更改都重置为默认值。
适用于
BeginContainer(Rectangle, Rectangle, GraphicsUnit)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
- Source:
- 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 窗体 一起使用,它需要 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 的状态。
容器可以嵌套;也就是说,在调用 BeginContainer 方法之前,可以多次调用 EndContainer 方法。 每次调用 BeginContainer 方法时,都会在堆栈上放置一个信息块,并且你会收到 GraphicsContainer 信息块的 。 将其中一个对象传递给 EndContainer 方法时,Graphics将返回到返回该特定 GraphicsContainer的方法调用时BeginContainer它处于的状态。 该方法 BeginContainer 调用放置在堆栈上的信息块将从堆栈中删除,并且该方法调用后 BeginContainer 放置在该堆栈上的所有信息块也会被删除。
对 方法的调用将 Save 信息块与对 方法的调用放在同一堆栈上 BeginContainer 。 就像方法调用与方法调用配对一BeginContainerRestore样EndContainer,方法调用与Save方法调用配对。
调用 EndContainer 方法时,在相应调用BeginContainer方法后, (方法或BeginContainer方法) 放置在堆栈Save上的所有信息块都将从堆栈中删除。 同样,调用 Restore 方法时,在相应调用 Save 方法后, (方法或BeginContainer方法) 放置在堆栈Save上的所有信息块都会从堆栈中删除。
此方法使用 和 srcrect
参数为新图形容器dstrect
指定缩放转换。 刻度等于应用于 srcrect
时产生的 dstrect
转换。
方法建立的 BeginContainer 图形状态包括默认图形状态的呈现质量;调用方法时存在的任何呈现质量状态更改都重置为默认值。
适用于
BeginContainer(RectangleF, RectangleF, GraphicsUnit)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
- Source:
- 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 窗体 一起使用,它需要 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 的状态。
容器可以嵌套;也就是说,在调用 BeginContainer 方法之前,可以多次调用 EndContainer 方法。 每次调用 BeginContainer 方法时,都会在堆栈上放置一个信息块,并且你会收到 GraphicsContainer 信息块的 。 将其中一个对象传递给 EndContainer 方法时,Graphics将返回到返回该特定 GraphicsContainer的方法调用时BeginContainer它处于的状态。 该方法 BeginContainer 调用放置在堆栈上的信息块将从堆栈中删除,并且该方法调用后 BeginContainer 放置在该堆栈上的所有信息块也会被删除。
对 方法的调用将 Save 信息块与对 方法的调用放在同一堆栈上 BeginContainer 。 就像方法调用与方法调用配对一BeginContainerRestore样EndContainer,方法调用与Save方法调用配对。
调用 EndContainer 方法时,在相应调用BeginContainer方法后, (方法或BeginContainer方法) 放置在堆栈Save
上的所有信息块都将从堆栈中删除。 同样,调用 Restore 方法时,在相应调用 Save 方法后, (方法或BeginContainer方法) 放置在堆栈Save上的所有信息块都会从堆栈中删除。
此方法使用 和 srcrect
参数为新图形容器dstrect
指定缩放转换。 刻度等于应用于 srcrect
时产生的 dstrect
转换。
方法建立的 BeginContainer 图形状态包括默认图形状态的呈现质量;调用方法时存在的任何呈现质量状态更改都重置为默认值。
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈