Share via


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 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