Bagikan melalui


Graphics.Save Metode

Definisi

Menyimpan status saat ini Graphics dan mengidentifikasi status tersimpan dengan GraphicsState.

public:
 System::Drawing::Drawing2D::GraphicsState ^ Save();
public System.Drawing.Drawing2D.GraphicsState Save ();
member this.Save : unit -> System.Drawing.Drawing2D.GraphicsState
Public Function Save () As GraphicsState

Mengembalikan

Metode ini mengembalikan GraphicsState yang mewakili status tersimpan dari ini Graphics.

Contoh

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

  • Menerjemahkan transformasi dunia Formulir Windows oleh vektor (100, 0).

  • Menyimpan status grafik formulir.

  • Mengatur ulang transformasi dunia dari formulir menjadi identitas (matriks identitas 2x2 ditambah terjemahan vektor nol) dan mengisi persegi panjang dengan sikat merah solid.

  • Memulihkan status grafis yang diterjemahkan dan mengisi persegi panjang dengan kuas biru solid.

Hasilnya adalah persegi panjang berwarna merah yang tidak diterjemahkan di sebelah kiri dan persegi panjang berwarna biru yang diterjemahkan di sebelah kanan formulir.

public:
   void SaveRestore3( PaintEventArgs^ e )
   {
      // Translate transformation matrix.
      e->Graphics->TranslateTransform( 100, 0 );

      // Save translated graphics state.
      GraphicsState^ transState = e->Graphics->Save();

      // Reset transformation matrix to identity and fill rectangle.
      e->Graphics->ResetTransform();
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Red ), 0, 0, 100, 100 );
      
      // Restore graphics state to translated state and fill second
      // rectangle.
      e->Graphics->Restore( transState );
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Blue ), 0, 0, 100, 100 );
   }
private void SaveRestore3(PaintEventArgs e)
{

    // Translate transformation matrix.
    e.Graphics.TranslateTransform(100, 0);

    // Save translated graphics state.
    GraphicsState transState = e.Graphics.Save();

    // Reset transformation matrix to identity and fill rectangle.
    e.Graphics.ResetTransform();
    e.Graphics.FillRectangle(new SolidBrush(Color.Red), 0, 0, 100, 100);

    // Restore graphics state to translated state and fill second

    // rectangle.
    e.Graphics.Restore(transState);
    e.Graphics.FillRectangle(new SolidBrush(Color.Blue), 0, 0, 100, 100);
}
Private Sub SaveRestore3(ByVal e As PaintEventArgs)

    ' Translate transformation matrix.
    e.Graphics.TranslateTransform(100, 0)

    ' Save translated graphics state.
    Dim transState As GraphicsState = e.Graphics.Save()

    ' Reset transformation matrix to identity and fill rectangle.
    e.Graphics.ResetTransform()
    e.Graphics.FillRectangle(New SolidBrush(Color.Red), 0, 0, 100, 100)

    ' Restore graphics state to translated state and fill second

    ' rectangle.
    e.Graphics.Restore(transState)
    e.Graphics.FillRectangle(New SolidBrush(Color.Blue), 0, 0, _
    100, 100)
End Sub

Keterangan

Ketika Anda memanggil Save metode , Graphicsblok informasi yang memegang status Graphics diletakkan pada tumpukan. Metode Save mengembalikan GraphicsState yang mengidentifikasi blok informasi tersebut. Ketika Anda meneruskan GraphicsState identifikasi ke Restore metode , blok informasi dihapus dari tumpukan dan digunakan untuk memulihkan Graphics ke keadaan Save saat panggilan metode. Perhatikan bahwa yang GraphicsState dikembalikan oleh panggilan tertentu ke Save metode hanya dapat diteruskan sekali ke Restore metode .

Panggilan ke Save metode dapat ditumpuk; yaitu, Anda dapat memanggil Save metode beberapa kali sebelum Anda memanggil Restore metode . Setiap kali Anda memanggil Save metode , blok informasi diletakkan di tumpukan, dan Anda menerima GraphicsState untuk blok informasi. Ketika Anda meneruskan salah satu objek tersebut Restore ke metode , Graphics dikembalikan ke statusnya pada saat Save panggilan metode yang mengembalikan tertentu GraphicsState. Blok informasi yang Save ditempatkan pada tumpukan oleh panggilan metode tersebut dihapus dari tumpukan, dan semua blok informasi yang ditempatkan pada tumpukan tersebut setelah Save panggilan metode tersebut juga dihapus.

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

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

Berlaku untuk