Graphics.Restore(GraphicsState) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bunun Graphics durumunu ile GraphicsStatetemsil edilen duruma geri yükler.
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)
Parametreler
- gstate
- GraphicsState
GraphicsState bu öğesinin geri yükleneceği Graphicsdurumu temsil eder.
Örnekler
Aşağıdaki kod örneği Windows Forms ile kullanılmak üzere tasarlanmıştır ve PaintEventArgs olay işleyicisinin bir parametresi olan ePaint gerektirir. Kod aşağıdaki eylemleri gerçekleştirir:
Windows Formunun dünya dönüşümünü bir vektörle çevirir (100, 0).
Formun grafik durumunu kaydeder.
Formun dünya dönüşümünü bir kimliğe sıfırlar ve dikdörtgeni düz kırmızı bir fırçayla doldurur.
Çevrilmiş grafik durumunu geri yükler ve ikinci bir dikdörtgeni düz mavi fırçayla doldurur.
Sonuç, çevrilmemiş kırmızı dolgulu bir dikdörtgen ve çevrilmiş mavi dolgulu bir dikdörtgendir.
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
Açıklamalar
yöntemini çağırdığınızda Save , öğesinin Graphicsdurumunu Graphics tutan bir bilgi bloğu bir yığına konur. yöntemi, Save bu bilgi bloğunu tanımlayan bir GraphicsState döndürür. Tanımlayıcıyı GraphicsState yöntemine Restore geçirdiğinizde, bilgi bloğu yığından kaldırılır ve yöntemi çağrısı sırasında Graphics içinde olduğu duruma geri yüklemek Save için kullanılır. Yöntemine GraphicsState verilen bir çağrı tarafından döndürülen öğesinin Save yönteme Restore yalnızca bir kez geçirilebileceğini unutmayın.
yöntemine yapılan Save çağrılar iç içe olabilir; diğer bir ifadeyle, yöntemini çağırmadan Save önce birkaç kez çağırabilirsiniz Restore . yöntemini her çağırdığınızda Save , yığına bir bilgi bloğu eklenir ve bilgi bloğu için bir GraphicsState alırsınız. Bu nesnelerden birini yöntemine Restore geçirdiğinizde, Graphics yöntemi çağrısının Savedöndürdüğünüz zaman GraphicsState içinde olduğu duruma döndürülür. Bu yöntem çağrısı tarafından Save yığına yerleştirilen bilgi bloğu yığından kaldırılır ve bu yöntem çağrısından sonra Save bu yığına yerleştirilen tüm bilgi blokları da kaldırılır.
yöntemine yapılan BeginContainer çağrılar, yöntem çağrıları ile aynı yığına bilgi blokları Save yerleştirir. Bir çağrının bir Restore çağrıyla eşlendiği gibiSave, yöntem EndContainer çağrısı da yöntem BeginContainer çağrısıyla eşleştirilir.
yöntemini çağırdığınızdaRestore, yönteme karşılık gelen çağrıdan Save sonra yığına yerleştirilen tüm bilgi blokları (BeginContaineryöntemi veya yöntemi tarafındanSave) yığından kaldırılır. Benzer şekilde, yöntemini çağırdığınızdaEndContainer, yönteme karşılık gelen çağrıdan Save sonra yığına yerleştirilen tüm bilgi blokları (BeginContaineryöntem veya yöntem tarafındanBeginContainer) yığından kaldırılır.