Bagikan melalui


Graphics.EndContainer(GraphicsContainer) Metode

Definisi

Menutup kontainer grafis saat ini dan memulihkan status Graphics ini ke status yang disimpan oleh panggilan ke metode BeginContainer().

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)

Parameter

container
GraphicsContainer

GraphicsContainer yang mewakili kontainer yang dipulihkan metode ini.

Contoh

Contoh kode berikut dirancang untuk digunakan dengan Windows Forms, dan memerlukan PaintEventArgse, yang merupakan parameter penanganan aktivitas Paint. Kode melakukan tindakan berikut:

  • Membuka kontainer grafis baru dan menyimpan kontainer lama.

  • Menerjemahkan koordinat dunia dalam kontainer.

  • Mengisi persegi panjang merah dalam kontainer baru (koordinat yang diterjemahkan).

  • Menutup kontainer baru dan memulihkan kontainer yang disimpan.

  • Mengisi persegi panjang hijau (ke koordinat yang tidak diterjemahkan) dari kontainer yang disimpan.

Hasilnya adalah persegi panjang hijau yang melebihi persegi panjang merah dengan ukuran yang sama.

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

Keterangan

Gunakan metode ini dengan metode BeginContainer untuk membuat kontainer grafis berlapis. Kontainer grafis mempertahankan status grafik, seperti transformasi, wilayah kliping, dan properti penyajian.

Ketika Anda memanggil metode BeginContainer dari Graphics, blok informasi yang menyimpan status Graphics diletakkan pada tumpukan. Metode BeginContainer mengembalikan GraphicsContainer yang mengidentifikasi blok informasi tersebut. Ketika Anda meneruskan objek identifikasi ke metode EndContainer, blok informasi dihapus dari tumpukan dan digunakan untuk memulihkan Graphics ke status pada saat panggilan metode BeginContainer.

Kontainer dapat ditumpuk; artinya, Anda dapat memanggil metode BeginContainer beberapa kali sebelum memanggil metode EndContainer. Setiap kali Anda memanggil metode BeginContainer, blok informasi dimasukkan ke tumpukan, dan Anda menerima GraphicsContainer untuk blok informasi. Ketika Anda meneruskan salah satu objek tersebut ke metode EndContainer, Graphics dikembalikan ke status pada saat panggilan metode BeginContainer yang mengembalikan GraphicsContainertertentu. Blok informasi yang ditempatkan pada tumpukan oleh panggilan metode BeginContainer dihapus dari tumpukan, dan semua blok informasi yang ditempatkan pada tumpukan tersebut setelah panggilan metode BeginContainer juga dihapus.

Panggilan ke metode Save menempatkan blok informasi pada tumpukan yang sama dengan panggilan ke metode BeginContainer. Sama seperti panggilan metode EndContainer dipasangkan dengan panggilan metode BeginContainer, panggilan metode Restore dipasangkan dengan panggilan metode Save.

Ketika Anda memanggil metode EndContainer, semua blok informasi yang ditempatkan pada tumpukan (dengan metode Save atau dengan metode BeginContainer) setelah panggilan yang sesuai ke metode BeginContainer dihapus dari tumpukan. Demikian juga, ketika Anda memanggil metode Restore, semua blok informasi yang ditempatkan pada tumpukan (dengan metode Save atau dengan metode BeginContainer) setelah panggilan yang sesuai ke metode Save dihapus dari tumpukan.

Berlaku untuk