Graphics.Save Yöntem

Tanım

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 GraphicsStateöğesinin kaydedilmiş durumunu temsil eden bir Graphics döndürür.

Ö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 (2x2 kimlik matrisi artı sıfır vektör çevirisi) ve dikdörtgeni düz kırmızı fırçayla doldurur.

  • Çevrilmiş grafik durumunu geri yükler ve dikdörtgeni düz mavi 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 ç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.

Şunlara uygulanır