Graphics.BeginContainer Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Сохраняет графический контейнер, содержащий текущее состояние данного объекта Graphics, а затем открывает и использует новый графический контейнер.
Перегрузки
BeginContainer() |
Сохраняет графический контейнер, содержащий текущее состояние данного объекта Graphics, а затем открывает и использует новый графический контейнер. |
BeginContainer(Rectangle, Rectangle, GraphicsUnit) |
Сохраняет графический контейнер, содержащий текущее состояние данного объекта Graphics, а также открывает и использует новый графический контейнер с указанным преобразованием масштаба. |
BeginContainer(RectangleF, RectangleF, GraphicsUnit) |
Сохраняет графический контейнер, содержащий текущее состояние данного объекта Graphics, а также открывает и использует новый графический контейнер с указанным преобразованием масштаба. |
BeginContainer()
- Исходный код:
- 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 для создания вложенных графических контейнеров. Графические контейнеры сохраняют графическое состояние, например преобразование, обрезку области и свойства отрисовки.
При вызове 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.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 для создания вложенных графических контейнеров. Графические контейнеры сохраняют графическое состояние, например преобразование, обрезку области и свойства отрисовки.
При вызове 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.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 для создания вложенных графических контейнеров. Графические контейнеры сохраняют графическое состояние, например преобразование, обрезку области и свойства отрисовки.
При вызове 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 , включает в себя качества отрисовки состояния графики по умолчанию. Все изменения качества отрисовки, существующие при вызове метода, сбрасываются до значений по умолчанию.
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по