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

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

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

Save 方法的调用会将信息块放置在与调用 BeginContainer 方法相同的堆栈上。 就像 EndContainer 方法调用与 BeginContainer 方法调用配对一样,Restore 方法调用与 Save 方法调用配对。

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

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

适用于

BeginContainer(Rectangle, Rectangle, GraphicsUnit)

Source:
Graphics.cs
Source:
Graphics.cs
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 方法一起使用,以创建嵌套图形容器。 图形容器保留图形状态,例如转换、剪辑区域和呈现属性。

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

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

Save 方法的调用会将信息块放置在与调用 BeginContainer 方法相同的堆栈上。 就像 EndContainer 方法调用与 BeginContainer 方法调用配对一样,Restore 方法调用与 Save 方法调用配对。

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

此方法为具有 dstrectsrcrect 参数的新图形容器指定缩放转换。 缩放等于应用于 srcrect的转换,会导致 dstrect

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

适用于

BeginContainer(RectangleF, RectangleF, GraphicsUnit)

Source:
Graphics.cs
Source:
Graphics.cs
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 方法一起使用,以创建嵌套图形容器。 图形容器保留图形状态,例如转换、剪辑区域和呈现属性。

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

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

Save 方法的调用会将信息块放置在与调用 BeginContainer 方法相同的堆栈上。 就像 EndContainer 方法调用与 BeginContainer 方法调用配对一样,Restore 方法调用与 Save 方法调用配对。

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

此方法为具有 dstrectsrcrect 参数的新图形容器指定缩放转换。 缩放等于应用于 srcrect的转换,会导致 dstrect

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

适用于