Graphics.Restore(GraphicsState) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Memulihkan status ini Graphics ke status yang diwakili oleh GraphicsState.
public:
void Restore(System::Drawing::Drawing2D::GraphicsState ^ gstate);
public void Restore (System.Drawing.Drawing2D.GraphicsState gstate);
member this.Restore : System.Drawing.Drawing2D.GraphicsState -> unit
Public Sub Restore (gstate As GraphicsState)
Parameter
- gstate
- GraphicsState
GraphicsState yang mewakili status untuk memulihkan 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 bentuk menjadi identitas dan mengisi persegi panjang dengan kuas merah solid.
Memulihkan status grafis yang diterjemahkan dan mengisi persegi panjang kedua dengan kuas biru solid.
Hasilnya adalah persegi panjang isi merah yang tidak diterjemahkan dan persegi panjang yang diterjemahkan dengan isian biru.
public:
void SaveRestore2( 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 SaveRestore2(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 SaveRestore2(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 yang ditempatkan pada tumpukan (dengan Save metode atau dengan BeginContainer metode ) setelah panggilan yang sesuai ke BeginContainer metode dihapus dari tumpukan.
Berlaku untuk
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk