Graphics.BeginContainer Метод

Определение

Сохраняет графический контейнер, содержащий текущее состояние данного объекта Graphics, а затем открывает и использует новый графический контейнер.

Перегрузки

BeginContainer()

Сохраняет графический контейнер, содержащий текущее состояние данного объекта Graphics, а затем открывает и использует новый графический контейнер.

BeginContainer(Rectangle, Rectangle, GraphicsUnit)

Сохраняет графический контейнер, содержащий текущее состояние данного объекта Graphics, а также открывает и использует новый графический контейнер с указанным преобразованием масштаба.

BeginContainer(RectangleF, RectangleF, GraphicsUnit)

Сохраняет графический контейнер, содержащий текущее состояние данного объекта Graphics, а также открывает и использует новый графический контейнер с указанным преобразованием масштаба.

BeginContainer()

Сохраняет графический контейнер, содержащий текущее состояние данного объекта 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 вызова метода.

Контейнеры могут быть вложенными; То есть метод можно вызвать BeginContainer несколько раз перед вызовом EndContainer метода . Каждый раз при вызове BeginContainer метода в стек помещается информационный блок, и вы получаете для блока сведений GraphicsContainer . При передаче одного из этих объектов EndContainer в метод возвращается в состояние, Graphics в которое он находился во время BeginContainer вызова метода, возвращающего этот конкретный GraphicsContainerобъект . Блок сведений, размещенный в стеке с помощью BeginContainer этого вызова метода, удаляется из стека, а все информационные блоки, размещенные в этом стеке после BeginContainer вызова метода, также удаляются.

Вызовы метода размещают информационные Save блоки в том же стеке, что и вызовы BeginContainer метода . Так же, как EndContainer вызов метода связан с вызовом BeginContainer метода, Restore вызов метода сопряжен с вызовом Save метода.

При вызове EndContainer метода все информационные блоки, размещенные в стеке (методом Save или методом BeginContainer ) после соответствующего BeginContainer вызова метода, удаляются из стека. Аналогичным образом при вызове Restore метода все информационные блоки, размещенные в стеке (методом Save или методом BeginContainer ) после соответствующего Save вызова метода, удаляются из стека.

Графическое состояние, установленное BeginContainer методом , включает в себя качества отрисовки графического состояния по умолчанию. Все изменения состояния качества отрисовки, существующие при вызове метода, сбрасываются до значений по умолчанию.

Применяется к

BeginContainer(Rectangle, Rectangle, GraphicsUnit)

Сохраняет графический контейнер, содержащий текущее состояние данного объекта 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 создания вложенных графических контейнеров. Графические контейнеры сохраняют графическое состояние, например преобразование, область обрезки и свойства отрисовки.

При вызове BeginContainer метода Graphicsобъекта информационный блок, содержащий состояние Graphics , помещается в стек. Метод BeginContainer возвращает объект , GraphicsContainer который идентифицирует этот информационный блок. При передаче идентифицящего объекта EndContainer в метод информационный блок удаляется из стека и используется для восстановления Graphics до состояния, в которое он находился на момент BeginContainer вызова метода.

Контейнеры могут быть вложенными; То есть метод можно вызвать BeginContainer несколько раз перед вызовом EndContainer метода . Каждый раз при вызове BeginContainer метода в стек помещается информационный блок, и вы получаете для блока сведений GraphicsContainer . При передаче одного из этих объектов EndContainer в метод возвращается в состояние, Graphics в которое он находился во время BeginContainer вызова метода, возвращающего этот конкретный GraphicsContainerобъект . Блок сведений, размещенный в стеке с помощью BeginContainer этого вызова метода, удаляется из стека, а все информационные блоки, размещенные в этом стеке после BeginContainer вызова метода, также удаляются.

Вызовы метода размещают информационные Save блоки в том же стеке, что и вызовы BeginContainer метода . Так же, как EndContainer вызов метода связан с вызовом BeginContainer метода, Restore вызов метода сопряжен с вызовом Save метода.

При вызове EndContainer метода все информационные блоки, размещенные в стеке (методом Save или методом BeginContainer ) после соответствующего BeginContainer вызова метода, удаляются из стека. Аналогичным образом при вызове Restore метода все информационные блоки, размещенные в стеке (методом Save или методом BeginContainer ) после соответствующего Save вызова метода, удаляются из стека.

Этот метод задает преобразование масштаба для нового графического контейнера с параметрами dstrect и srcrect . Масштаб равен преобразованию, которое при применении к приводит dstrectк srcrect.

Графическое состояние, установленное BeginContainer методом , включает в себя качества отрисовки графического состояния по умолчанию. Все изменения состояния качества отрисовки, существующие при вызове метода, сбрасываются до значений по умолчанию.

Применяется к

BeginContainer(RectangleF, RectangleF, GraphicsUnit)

Сохраняет графический контейнер, содержащий текущее состояние данного объекта 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 вызова метода.

Контейнеры могут быть вложенными; То есть метод можно вызвать BeginContainer несколько раз перед вызовом EndContainer метода . Каждый раз при вызове BeginContainer метода в стек помещается информационный блок, и вы получаете для блока сведений GraphicsContainer . При передаче одного из этих объектов EndContainer в метод возвращается в состояние, Graphics в которое он находился во время BeginContainer вызова метода, возвращающего этот конкретный GraphicsContainerобъект . Блок сведений, размещенный в стеке с помощью BeginContainer этого вызова метода, удаляется из стека, а все информационные блоки, размещенные в этом стеке после BeginContainer вызова метода, также удаляются.

Вызовы метода размещают информационные Save блоки в том же стеке, что и вызовы BeginContainer метода . Так же, как EndContainer вызов метода связан с вызовом BeginContainer метода, Restore вызов метода сопряжен с вызовом Save метода.

При вызове EndContainer метода все информационные блоки, размещенные в стеке (методом Save или методом BeginContainer ) после соответствующего BeginContainer вызова метода, удаляются из стека. Аналогичным образом при вызове Restore метода все информационные блоки, размещенные в стеке (методом Save или методом BeginContainer ) после соответствующего Save вызова метода, удаляются из стека.

Этот метод задает преобразование масштаба для нового графического контейнера с параметрами dstrect и srcrect . Масштаб равен преобразованию, которое при применении к приводит dstrectк srcrect.

Графическое состояние, установленное BeginContainer методом , включает в себя качества отрисовки графического состояния по умолчанию. Все изменения состояния качества отрисовки, существующие при вызове метода, сбрасываются до значений по умолчанию.

Применяется к