Graphics.EndContainer(GraphicsContainer) Graphics.EndContainer(GraphicsContainer) Graphics.EndContainer(GraphicsContainer) Graphics.EndContainer(GraphicsContainer) Method

Определение

Закрывает текущий графический контейнер и восстанавливает состояние данного объекта Graphics, которое было сохранено при вызове метода BeginContainer().Closes the current graphics container and restores the state of this Graphics to the state saved by a call to the BeginContainer() method.

public:
 void EndContainer(System::Drawing::Drawing2D::GraphicsContainer ^ container);
public void EndContainer (System.Drawing.Drawing2D.GraphicsContainer container);
member this.EndContainer : System.Drawing.Drawing2D.GraphicsContainer -> unit
Public Sub EndContainer (container As GraphicsContainer)

Параметры

container
GraphicsContainer GraphicsContainer GraphicsContainer GraphicsContainer

Объект GraphicsContainer, представляющий контейнер, восстанавливаемый этим методом.GraphicsContainer that represents the container this method restores.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgs e, что Paint является параметром обработчика событий.The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. Код выполняет следующие действия.The code performs the following actions:

  • Открывает новый графический контейнер и сохраняет старый контейнер.Opens a new graphics container and saves the old container.

  • Преобразует координаты мира в контейнере.Translates the world coordinates in the container.

  • Заполняет красный прямоугольник в (переведенные координаты) нового контейнера.Fills a red rectangle in the (translated coordinates of the) new container.

  • Закрывает новый контейнер и восстанавливает сохраненный контейнер.Closes the new container and restores the saved container.

  • Заполняет зеленый прямоугольник (до непреобразованных координат) сохраненного контейнера.Fills a green rectangle (to the untranslated coordinates) of the saved container.

Результатом является зеленый прямоугольник, который пересекает красный прямоугольник того же размера.The result is a green rectangle that overlies a red rectangle of the same size.

public:
   void EndContainerState( 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 );
   }
public void EndContainerState(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);
}
Public Sub EndContainerState(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

Комментарии

Используйте этот метод с BeginContainer методом для создания вложенных графических контейнеров.Use this method with the BeginContainer method to create nested graphics containers. Графические контейнеры имеют состояние графика, например преобразование, область отсечения и свойства подготовки к просмотру.Graphics containers retain graphics state, such as transformation, clipping region, and rendering properties.

При вызове BeginContainer метода Graphicsобъекта информационный блок, Graphics содержащий состояние, помещается в стек.When you call the BeginContainer method of a Graphics, an information block that holds the state of the Graphics is put on a stack. Метод возвращает объект GraphicsContainer , который идентифицирует этот блок информации. BeginContainerThe BeginContainer method returns a GraphicsContainer that identifies that information block. При передаче идентифицирующего объекта в EndContainer метод информационный блок удаляется из стека и используется для Graphics восстановления до состояния, в котором оно находилось в момент BeginContainer вызова метода.When you pass the identifying object to the EndContainer method, the information block is removed from the stack and is used to restore the Graphics to the state it was in at the time of the BeginContainer method call.

Контейнеры могут быть вложенными; Это значит, что BeginContainer метод можно вызвать несколько раз перед EndContainer вызовом метода.Containers can be nested; that is, you can call the BeginContainer method several times before you call the EndContainer method. Каждый раз при вызове BeginContainer метода информационный блок помещается в стек, а GraphicsContainer для информационного блока получается.Each time you call the BeginContainer method, an information block is put on the stack, and you receive a GraphicsContainer for the information block. При передаче одного из этих объектов EndContainer в метод Graphics возвращается в состояние, в котором оно находилось в момент BeginContainer вызова метода, который возвращал эту конкретную GraphicsContainerфункцию.When you pass one of those objects to the EndContainer method, the Graphics is returned to the state it was in at the time of the BeginContainer method call that returned that particular GraphicsContainer. Информационный блок, помещенный в стек BeginContainer этим вызовом метода, удаляется из стека, а все информационные блоки, помещенные в этот стек после этого BeginContainer вызова метода, также удаляются.The information block placed on the stack by that BeginContainer method call is removed from the stack, and all information blocks placed on that stack after that BeginContainer method call are also removed.

Вызовы метода размещают информационные блоки в том же стеке, что и вызовы BeginContainer метода. SaveCalls to the Save method place information blocks on the same stack as calls to the BeginContainer method. Так же, EndContainer как вызов метода объединяется BeginContainer с вызовом метода, Restore вызов метода объединяется с Save вызовом метода.Just as an EndContainer method call is paired with a BeginContainer method call, a Restore method call is paired with a Save method call.

При вызове EndContainer метода все информационные блоки, размещенные в стеке ( Save методом или BeginContainer BeginContainer методом) после соответствующего вызова метода, удаляются из стека.When you call the EndContainer method, all information blocks placed on the stack (by the Save method or by the BeginContainer method) after the corresponding call to the BeginContainer method are removed from the stack. Аналогично, при вызове Restore метода все информационные блоки, размещенные в стеке ( Save методом или BeginContainer Save методом) после соответствующего вызова метода, удаляются из стека.Likewise, when you call the Restore method, all information blocks placed on the stack (by the Save method or by the BeginContainer method) after the corresponding call to the Save method are removed from the stack.

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