Aracılığıyla paylaş


Graphics.EndContainer(GraphicsContainer) Yöntem

Tanım

Geçerli grafik kapsayıcısını kapatır ve bu Graphics durumunu BeginContainer() yöntemine yapılan bir çağrı tarafından kaydedilen duruma geri yükler.

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)

Parametreler

container
GraphicsContainer

GraphicsContainer bu yöntemin geri yükleneceği kapsayıcıyı temsil eder.

Örnekler

Aşağıdaki kod örneği Windows Forms ile kullanılmak üzere tasarlanmıştır ve Paint olay işleyicisinin bir parametresi olan PaintEventArgsegerektirir. Kod aşağıdaki eylemleri gerçekleştirir:

  • Yeni bir grafik kapsayıcısı açar ve eski kapsayıcıyı kaydeder.

  • Kapsayıcıdaki dünya koordinatlarını çevirir.

  • Yeni kapsayıcıda (çevrilmiş koordinatları) kırmızı bir dikdörtgen doldurur.

  • Yeni kapsayıcıyı kapatır ve kaydedilen kapsayıcıyı geri yükler.

  • Kaydedilen kapsayıcının yeşil bir dikdörtgenini (çevrilmemiş koordinatlara) doldurur.

Sonuç, aynı boyuttaki kırmızı dikdörtgeni aşan yeşil bir dikdörtgendir.

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

Açıklamalar

İç içe grafik kapsayıcıları oluşturmak için BeginContainer yöntemiyle bu yöntemi kullanın. Grafik kapsayıcıları dönüştürme, kırpma bölgesi ve işleme özellikleri gibi grafik durumunu korur.

bir GraphicsBeginContainer yöntemini çağırdığınızda, Graphics durumunu tutan bir bilgi bloğu bir yığına konur. BeginContainer yöntemi, bu bilgi bloğunu tanımlayan bir GraphicsContainer döndürür. Tanımlayıcı nesneyi EndContainer yöntemine geçirdiğinizde, bilgi bloğu yığından kaldırılır ve GraphicsBeginContainer yöntem çağrısı sırasında olduğu duruma geri yüklemek için kullanılır.

Kapsayıcılar iç içe olabilir; başka bir ifadeyle, EndContainer yöntemini çağırmadan önce BeginContainer yöntemini birkaç kez çağırabilirsiniz. BeginContainer yöntemini her çağırdığınızda, yığına bir bilgi bloğu eklenir ve bilgi bloğu için bir GraphicsContainer alırsınız. Bu nesnelerden birini EndContainer yöntemine geçirdiğinizde, Graphics ilgili GraphicsContainerdöndüren BeginContainer yöntemi çağrısı sırasında olduğu duruma döndürülür. Bu BeginContainer yöntem çağrısı tarafından yığına yerleştirilen bilgi bloğu yığından kaldırılır ve bu BeginContainer yöntem çağrısından sonra bu yığına yerleştirilen tüm bilgi blokları da kaldırılır.

Save yöntemine yapılan çağrılar, bilgi bloklarını BeginContainer yöntemine yapılan çağrılar ile aynı yığına yerleştirir. EndContainer yöntem çağrısının BeginContainer yöntem çağrısıyla eşlendiği gibi, Restore yöntem çağrısı da Save yöntem çağrısıyla eşleştirilir.

EndContainer yöntemini çağırdığınızda, BeginContainer yöntemine karşılık gelen çağrıdan sonra yığına yerleştirilen tüm bilgi blokları (Save yöntemi veya BeginContainer yöntemi tarafından) yığından kaldırılır. Benzer şekilde, Restore yöntemini çağırdığınızda, Save yöntemine karşılık gelen çağrıdan sonra yığına yerleştirilen tüm bilgi blokları (Save yöntemi veya BeginContainer yöntemi tarafından) yığından kaldırılır.

Şunlara uygulanır