Udostępnij za pośrednictwem


Graphics.BeginContainer Metoda

Definicja

Zapisuje kontener graficzny z bieżącym stanem tego Graphics i otwiera go i używa nowego kontenera grafiki.

Przeciążenia

BeginContainer()

Zapisuje kontener graficzny z bieżącym stanem tego Graphics i otwiera go i używa nowego kontenera grafiki.

BeginContainer(Rectangle, Rectangle, GraphicsUnit)

Zapisuje kontener graficzny z bieżącym stanem tego Graphics i otwiera się i używa nowego kontenera graficznego z określonym przekształceniem skalowania.

BeginContainer(RectangleF, RectangleF, GraphicsUnit)

Zapisuje kontener graficzny z bieżącym stanem tego Graphics i otwiera się i używa nowego kontenera graficznego z określonym przekształceniem skalowania.

BeginContainer()

Źródło:
Graphics.cs
Źródło:
Graphics.cs

Zapisuje kontener graficzny z bieżącym stanem tego Graphics i otwiera go i używa nowego kontenera grafiki.

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

Zwraca

Ta metoda zwraca GraphicsContainer, która reprezentuje stan tego Graphics w momencie wywołania metody.

Przykłady

Poniższy przykład kodu jest przeznaczony do użycia z formularzami Systemu Windows i wymaga PaintEventArgse, który jest parametrem programu obsługi zdarzeń Paint. Kod wykonuje następujące akcje:

  • Otwiera nowy kontener graficzny i zapisuje stary kontener.

  • Tłumaczy współrzędne świata w kontenerze.

  • Wypełnia czerwony prostokąt w nowym kontenerze (przetłumaczone współrzędne).

  • Zamyka nowy kontener i przywraca zapisany kontener.

  • Wypełnia zielony prostokąt (do nieprzetłumaczonych współrzędnych) zapisanego kontenera.

Wynik jest zielonym prostokątem, który zastępuje czerwony prostokąt o tym samym rozmiarze.

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

Uwagi

Użyj tej metody z metodą EndContainer, aby utworzyć zagnieżdżone kontenery graficzne. Kontenery grafiki zachowują stan grafiki, takie jak przekształcanie, wycinanie regionów i właściwości renderowania.

Podczas wywoływania metody BeginContainerGraphicsblok informacji, który przechowuje stan Graphics jest umieszczany na stosie. Metoda BeginContainer zwraca GraphicsContainer, która identyfikuje ten blok informacji. Po przekazaniu obiektu identyfikującego do metody EndContainer blok informacji zostanie usunięty ze stosu i zostanie użyty do przywrócenia Graphics do stanu, w którym znajdował się w czasie wywołania metody BeginContainer.

Kontenery mogą być zagnieżdżone; oznacza to, że można wywołać metodę BeginContainer kilka razy przed wywołaniem metody EndContainer. Za każdym razem, gdy wywołujesz metodę BeginContainer, blok informacji jest umieszczany na stosie i otrzymujesz GraphicsContainer dla bloku informacji. Po przekazaniu jednego z tych obiektów do metody EndContainerGraphics jest zwracany do stanu, w którym znajdował się w czasie wywołania metody BeginContainer, które zwróciło tę konkretną GraphicsContainer. Blok informacji umieszczony na stosie przez to wywołanie metody BeginContainer jest usuwany ze stosu, a wszystkie bloki informacji umieszczone na tym stosie po tym wywołaniu metody BeginContainer również zostaną usunięte.

Wywołania metody Save umieszczają bloki informacji na tym samym stosie co wywołania metody BeginContainer. Podobnie jak wywołanie metody EndContainer jest sparowane z wywołaniem metody BeginContainer, wywołanie metody Restore jest sparowane z wywołaniem metody Save.

Po wywołaniu metody EndContainer wszystkie bloki informacji umieszczone na stosie (przez metodę Save lub metodę BeginContainer) po wywołaniu metody BeginContainer zostaną usunięte ze stosu. Podobnie, po wywołaniu metody Restore wszystkie bloki informacji umieszczone na stosie (przez metodę Save lub metodę BeginContainer) po odpowiednim wywołaniu metody Save zostaną usunięte ze stosu.

Stan grafiki ustanowiony przez metodę BeginContainer zawiera cechy renderowania domyślnego stanu grafiki; wszelkie zmiany stanu jakości renderowania istniejące po wywołaniu metody są resetowane do wartości domyślnych.

Dotyczy

BeginContainer(Rectangle, Rectangle, GraphicsUnit)

Źródło:
Graphics.cs
Źródło:
Graphics.cs

Zapisuje kontener graficzny z bieżącym stanem tego Graphics i otwiera się i używa nowego kontenera graficznego z określonym przekształceniem skalowania.

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

Parametry

dstrect
Rectangle

Rectangle strukturę, która wraz z parametrem srcrect określa przekształcenie skali dla kontenera.

srcrect
Rectangle

Rectangle strukturę, która wraz z parametrem dstrect określa przekształcenie skali dla kontenera.

unit
GraphicsUnit

Element członkowski GraphicsUnit wyliczenia, który określa jednostkę miary dla kontenera.

Zwraca

Ta metoda zwraca GraphicsContainer, która reprezentuje stan tego Graphics w momencie wywołania metody.

Przykłady

Poniższy przykład kodu jest przeznaczony do użycia z formularzami Systemu Windows i wymaga PaintEventArgse, który jest parametrem programu obsługi zdarzeń Paint. Kod wykonuje następujące akcje:

  • Tworzy dwa prostokąty, aby określić przekształcenie skali dla nowego kontenera.

  • Otwiera nowy kontener graficzny i zapisuje stary kontener.

  • Wypełnia czerwony prostokąt w (skalowanych współrzędnych) nowego kontenera.

  • Zamyka nowy kontener i przywraca zapisany kontener.

  • Wypełnia zielony prostokąt (do współrzędnych nieskalowanych) zapisanego kontenera.

Wynikiem jest zielony prostokąt, który zastępuje mniejszy czerwony prostokąt.

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

Uwagi

Użyj tej metody z metodą EndContainer, aby utworzyć zagnieżdżone kontenery graficzne. Kontenery grafiki zachowują stan grafiki, takie jak przekształcanie, wycinanie regionów i właściwości renderowania.

Podczas wywoływania metody BeginContainerGraphicsblok informacji, który przechowuje stan Graphics jest umieszczany na stosie. Metoda BeginContainer zwraca GraphicsContainer, która identyfikuje ten blok informacji. Po przekazaniu obiektu identyfikującego do metody EndContainer blok informacji zostanie usunięty ze stosu i zostanie użyty do przywrócenia Graphics do stanu, w którym znajdował się w czasie wywołania metody BeginContainer.

Kontenery mogą być zagnieżdżone; oznacza to, że można wywołać metodę BeginContainer kilka razy przed wywołaniem metody EndContainer. Za każdym razem, gdy wywołujesz metodę BeginContainer, blok informacji jest umieszczany na stosie i otrzymujesz GraphicsContainer dla bloku informacji. Po przekazaniu jednego z tych obiektów do metody EndContainerGraphics jest zwracany do stanu, w którym znajdował się w czasie wywołania metody BeginContainer, które zwróciło tę konkretną GraphicsContainer. Blok informacji umieszczony na stosie przez to wywołanie metody BeginContainer jest usuwany ze stosu, a wszystkie bloki informacji umieszczone na tym stosie po tym wywołaniu metody BeginContainer również zostaną usunięte.

Wywołania metody Save umieszczają bloki informacji na tym samym stosie co wywołania metody BeginContainer. Podobnie jak wywołanie metody EndContainer jest sparowane z wywołaniem metody BeginContainer, wywołanie metody Restore jest sparowane z wywołaniem metody Save.

Po wywołaniu metody EndContainer wszystkie bloki informacji umieszczone na stosie (przez metodę Save lub metodę BeginContainer) po wywołaniu metody BeginContainer zostaną usunięte ze stosu. Podobnie, po wywołaniu metody Restore wszystkie bloki informacji umieszczone na stosie (przez metodę Save lub metodę BeginContainer) po odpowiednim wywołaniu metody Save zostaną usunięte ze stosu.

Ta metoda określa przekształcenie skali dla nowego kontenera grafiki z parametrami dstrect i srcrect. Skala jest równa przekształceniu, które po zastosowaniu do srcrectpowoduje dstrect.

Stan grafiki ustanowiony przez metodę BeginContainer zawiera cechy renderowania domyślnego stanu grafiki; wszelkie zmiany stanu jakości renderowania istniejące po wywołaniu metody są resetowane do wartości domyślnych.

Dotyczy

BeginContainer(RectangleF, RectangleF, GraphicsUnit)

Źródło:
Graphics.cs
Źródło:
Graphics.cs

Zapisuje kontener graficzny z bieżącym stanem tego Graphics i otwiera się i używa nowego kontenera graficznego z określonym przekształceniem skalowania.

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

Parametry

dstrect
RectangleF

RectangleF strukturę, która wraz z parametrem srcrect określa przekształcenie skali dla nowego kontenera grafiki.

srcrect
RectangleF

RectangleF strukturę, która wraz z parametrem dstrect określa przekształcenie skali dla nowego kontenera grafiki.

unit
GraphicsUnit

Element członkowski GraphicsUnit wyliczenia, który określa jednostkę miary dla kontenera.

Zwraca

Ta metoda zwraca GraphicsContainer, która reprezentuje stan tego Graphics w momencie wywołania metody.

Przykłady

Poniższy przykład kodu jest przeznaczony do użycia z formularzami Systemu Windows i wymaga PaintEventArgse, który jest parametrem programu obsługi zdarzeń Paint. Kod wykonuje następujące akcje:

  • Tworzy dwa prostokąty, aby określić przekształcenie skali dla nowego kontenera.

  • Otwiera nowy kontener graficzny i zapisuje stary kontener.

  • Wypełnia czerwony prostokąt w (skalowanych współrzędnych) nowego kontenera.

  • Zamyka nowy kontener i przywraca zapisany kontener.

  • Wypełnia zielony prostokąt (do współrzędnych nieskalowanych) zapisanego kontenera.

Wynikiem jest zielony prostokąt, który zastępuje mniejszy czerwony prostokąt.

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

Uwagi

Użyj tej metody z metodą EndContainer, aby utworzyć zagnieżdżone kontenery graficzne. Kontenery grafiki zachowują stan grafiki, takie jak przekształcanie, wycinanie regionów i właściwości renderowania.

Podczas wywoływania metody BeginContainerGraphicsblok informacji, który przechowuje stan Graphics jest umieszczany na stosie. Metoda BeginContainer zwraca GraphicsContainer, która identyfikuje ten blok informacji. Po przekazaniu obiektu identyfikującego do metody EndContainer blok informacji zostanie usunięty ze stosu i zostanie użyty do przywrócenia Graphics do stanu, w którym znajdował się w czasie wywołania metody BeginContainer.

Kontenery mogą być zagnieżdżone; oznacza to, że można wywołać metodę BeginContainer kilka razy przed wywołaniem metody EndContainer. Za każdym razem, gdy wywołujesz metodę BeginContainer, blok informacji jest umieszczany na stosie i otrzymujesz GraphicsContainer dla bloku informacji. Po przekazaniu jednego z tych obiektów do metody EndContainerGraphics jest zwracany do stanu, w którym znajdował się w czasie wywołania metody BeginContainer, które zwróciło tę konkretną GraphicsContainer. Blok informacji umieszczony na stosie przez to wywołanie metody BeginContainer jest usuwany ze stosu, a wszystkie bloki informacji umieszczone na tym stosie po tym wywołaniu metody BeginContainer również zostaną usunięte.

Wywołania metody Save umieszczają bloki informacji na tym samym stosie co wywołania metody BeginContainer. Podobnie jak wywołanie metody EndContainer jest sparowane z wywołaniem metody BeginContainer, wywołanie metody Restore jest sparowane z wywołaniem metody Save.

Po wywołaniu metody EndContainer wszystkie bloki informacji umieszczone na stosie (przez metodę Save lub metodę BeginContainer) po wywołaniu metody BeginContainer zostaną usunięte ze stosu. Podobnie, po wywołaniu metody Restore wszystkie bloki informacji umieszczone na stosie (przez metodę Save lub metodę BeginContainer) po odpowiednim wywołaniu metody Save zostaną usunięte ze stosu.

Ta metoda określa przekształcenie skali dla nowego kontenera grafiki z parametrami dstrect i srcrect. Skala jest równa przekształceniu, które po zastosowaniu do srcrectpowoduje dstrect.

Stan grafiki ustanowiony przez metodę BeginContainer zawiera cechy renderowania domyślnego stanu grafiki; wszelkie zmiany stanu jakości renderowania istniejące po wywołaniu metody są resetowane do wartości domyślnych.

Dotyczy