Graphics.Save 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 geçerli durumunu kaydeder ve kaydedilmiş durumu ile GraphicsStatetanımlar.
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
Döndürülenler
Bu yöntem, bu Graphicsöğesinin kaydedilmiş durumunu temsil eden bir GraphicsState döndürür.
Örnekler
Aşağıdaki kod örneği, Windows Forms ile kullanılmak üzere tasarlanmıştır ve olay işleyicisinin bir parametresi olan öğesini gerektirirPaintEventArgse
.Paint 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 (2x2 kimlik matrisi artı sıfır vektör çevirisi) sıfırlar ve dikdörtgeni düz kırmızı bir fırçayla doldurur.
Çevrilmiş grafik durumunu geri yükler ve dikdörtgeni düz mavi bir fırçayla doldurur.
Sonuç, sol tarafta çevrilmemiş kırmızı dolgulu bir dikdörtgen ve formun sağ tarafında çevrilmiş mavi dolgulu bir dikdörtgendir.
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
Açıklamalar
yöntemini GraphicsçağırdığınızdaSave, durumunu tutan Graphics 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 öğesini yöntem çağrısı sırasında Save olduğu duruma geri yüklemek Graphics için kullanılır. Yöntemine GraphicsState verilen bir çağrı tarafından döndürülen öğesinin Save yönteme yalnızca bir kez Restore geçirilebileceğini unutmayın.
yöntemine yapılan Save çağrılar iç içe olabilir; başka bir ifadeyle, yöntemini çağırmadan Save önce yöntemini 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 GraphicsStatedöndürdüğünüz zaman Save 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, bilgi bloklarını yöntemine yapılan çağrılar ile aynı yığına Save yerleştirir. Bir çağrının çağrıyla eşlendiği gibiRestore, yöntem EndContainer çağrısı da yöntem BeginContainer çağrısıyla eşleştirilir.Save
yöntemini çağırdığınızda, yönteme Restore karşılık gelen çağrıdan Save sonra yığına (Saveyöntemi veya yöntemi tarafındanBeginContainer) yerleştirilen tüm bilgi blokları yığından kaldırılır. Benzer şekilde, yöntemini çağırdığınızdaEndContainer, yönteme karşılık gelen çağrıdan BeginContainer sonra yığına yerleştirilen tüm bilgi blokları (Saveyöntemi veya yöntemi tarafındanBeginContainer) yığından kaldırılır.
Şunlara uygulanır
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin