Поделиться через


Graphics.BeginContainer Метод

Определение

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

Перегрузки

BeginContainer()

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

BeginContainer(Rectangle, Rectangle, GraphicsUnit)

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

BeginContainer(RectangleF, RectangleF, GraphicsUnit)

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

BeginContainer()

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

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

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

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

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

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

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

BeginContainer(Rectangle, Rectangle, GraphicsUnit)

Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
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

Параметры

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

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

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

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

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

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

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

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

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

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

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