Bagikan melalui


Graphics.EndContainer(GraphicsContainer) Metode

Definisi

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

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 Formulir Windows, dan memerlukan PaintEventArgse, yang merupakan parameter penanganan Paint aktivitas. Kode melakukan tindakan berikut:

  • Membuka kontainer grafis baru dan menyimpan kontainer lama.

  • Menerjemahkan koordinat dunia dalam kontainer.

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

  • 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 BeginContainer metode untuk membuat kontainer grafis berlapis. Kontainer grafik mempertahankan status grafis, seperti transformasi, wilayah kliping, dan properti penyajian.

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

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

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

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

Berlaku untuk