Graphics.BeginContainer 方法

定义

保存具有此 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 ,以创建嵌套图形容器。 图形容器保留图形状态,例如转换、剪辑区域和呈现属性。

调用 BeginContainerGraphics方法时,将把包含 状态 Graphics 的信息块放在堆栈上。 方法 BeginContainer 返回一个 GraphicsContainer 标识该信息块的 。 将标识对象传递给 EndContainer 方法时,信息块将从堆栈中删除,并用于将 还原 Graphics 到调用方法时 BeginContainer 的状态。

容器可以嵌套;也就是说,在调用 BeginContainer 方法之前,可以多次调用 EndContainer 方法。 每次调用 BeginContainer 方法时,都会在堆栈上放置一个信息块,并且你会收到 GraphicsContainer 信息块的 。 将其中一个对象传递给 EndContainer 方法时,Graphics将返回到返回该特定 GraphicsContainer的方法调用时BeginContainer它处于的状态。 该方法 BeginContainer 调用放置在堆栈上的信息块将从堆栈中删除,并且该方法调用后 BeginContainer 放置在该堆栈上的所有信息块也会被删除。

对 方法的调用将 Save 信息块与对 方法的调用放在同一堆栈上 BeginContainer 。 就像方法调用与方法调用配对一BeginContainerRestoreEndContainer,方法调用与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

参数

dstrect
Rectangle

Rectangle 结构,它与 srcrect 参数一起为容器指定缩放变换。

srcrect
Rectangle

Rectangle 结构,它与 dstrect 参数一起为容器指定缩放变换。

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 ,以创建嵌套图形容器。 图形容器保留图形状态,例如转换、剪辑区域和呈现属性。

调用 BeginContainerGraphics方法时,将把包含 状态 Graphics 的信息块放在堆栈上。 方法 BeginContainer 返回一个 GraphicsContainer 标识该信息块的 。 将标识对象传递给 EndContainer 方法时,信息块将从堆栈中删除,并用于将 还原 Graphics 到调用方法时 BeginContainer 的状态。

容器可以嵌套;也就是说,在调用 BeginContainer 方法之前,可以多次调用 EndContainer 方法。 每次调用 BeginContainer 方法时,都会在堆栈上放置一个信息块,并且你会收到 GraphicsContainer 信息块的 。 将其中一个对象传递给 EndContainer 方法时,Graphics将返回到返回该特定 GraphicsContainer的方法调用时BeginContainer它处于的状态。 该方法 BeginContainer 调用放置在堆栈上的信息块将从堆栈中删除,并且该方法调用后 BeginContainer 放置在该堆栈上的所有信息块也会被删除。

对 方法的调用将 Save 信息块与对 方法的调用放在同一堆栈上 BeginContainer 。 就像方法调用与方法调用配对一BeginContainerRestoreEndContainer,方法调用与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 ,以创建嵌套图形容器。 图形容器保留图形状态,例如转换、剪辑区域和呈现属性。

调用 BeginContainerGraphics方法时,将把包含 状态 Graphics 的信息块放在堆栈上。 方法 BeginContainer 返回一个 GraphicsContainer 标识该信息块的 。 将标识对象传递给 EndContainer 方法时,信息块将从堆栈中删除,并用于将 还原 Graphics 到调用方法时 BeginContainer 的状态。

容器可以嵌套;也就是说,在调用 BeginContainer 方法之前,可以多次调用 EndContainer 方法。 每次调用 BeginContainer 方法时,都会在堆栈上放置一个信息块,并且你会收到 GraphicsContainer 信息块的 。 将其中一个对象传递给 EndContainer 方法时,Graphics将返回到返回该特定 GraphicsContainer的方法调用时BeginContainer它处于的状态。 该方法 BeginContainer 调用放置在堆栈上的信息块将从堆栈中删除,并且该方法调用后 BeginContainer 放置在该堆栈上的所有信息块也会被删除。

对 方法的调用将 Save 信息块与对 方法的调用放在同一堆栈上 BeginContainer 。 就像方法调用与方法调用配对一BeginContainerRestoreEndContainer,方法调用与Save方法调用配对。

调用 EndContainer 方法时,在相应调用BeginContainer方法后, (方法或BeginContainer方法) 放置在堆栈Save上的所有信息块都将从堆栈中删除。 同样,调用 Restore 方法时,在相应调用 Save 方法后, (方法或BeginContainer方法) 放置在堆栈Save上的所有信息块都会从堆栈中删除。

此方法使用 和 srcrect 参数为新图形容器dstrect指定缩放转换。 刻度等于应用于 srcrect时产生的 dstrect转换。

方法建立的 BeginContainer 图形状态包括默认图形状态的呈现质量;调用方法时存在的任何呈现质量状态更改都重置为默认值。

适用于