Share via


Graphics.Restore(GraphicsState) Yöntem

Tanım

Bunun Graphics durumunu bir GraphicsStateile temsil 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 olay işleyicisinin Paint bir parametresi olan gerektirir.PaintEventArgse Kod aşağıdaki eylemleri gerçekleştirir:

  • Windows Formunun dünya dönüşümünü bir vektör (100, 0) ile çevirir.

  • 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 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 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ımlamayı GraphicsState yöntemine Restore geçirdiğinizde, bilgi bloğu yığından kaldırılır ve yöntemini yöntem çağrısı sırasındaki Save durumuna 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 Restore yalnızca bir kez geçirilebileceğini unutmayın.

yöntemine yapılan Save çağrılar iç içe yerleştirilmiş 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. Yöntemine Restore bu nesnelerden birini geçirdiğinizde, Graphics yöntemi çağrısı sırasında içinde olduğu Save duruma döndürülür ve bu belirli GraphicsStateöğesini döndürü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. Çağrının bir RestoreSave çağrıyla eşlendiği gibi, yöntem EndContainer çağrısı da yöntem BeginContainer çağrısıyla eşleştirilir.

yöntemini çağırdığınızda, yönteme Restore karşılık gelen çağrıdan Save sonra yığına yerleştirilen tüm bilgi blokları (Saveyöntemi veya yöntemi tarafındanBeginContainer) 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 BeginContainer yöntemi tarafından) yığından kaldırılır.

Şunlara uygulanır