Graphics.Restore(GraphicsState) Graphics.Restore(GraphicsState) Graphics.Restore(GraphicsState) Graphics.Restore(GraphicsState) Method

Definición

Restaura el estado de este Graphics en el estado representado por un GraphicsState.Restores the state of this Graphics to the state represented by a GraphicsState.

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)

Parámetros

gstate
GraphicsState GraphicsState GraphicsState GraphicsState

GraphicsState que representa el estado al que se va a restaurar este Graphics.GraphicsState that represents the state to which to restore this Graphics.

Ejemplos

El siguiente ejemplo de código está diseñado para su uso con Windows Forms y requiere PaintEventArgs e, que Paint es un parámetro del controlador de eventos.The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. El código realiza las siguientes acciones:The code performs the following actions:

  • Convierte la transformación universal del formulario de Windows Forms en un vector (100).Translates the world transform of the Windows Form by a vector (100, 0).

  • Guarda el estado de los gráficos del formulario.Saves the graphics state of the form.

  • Restablece la transformación universal del formulario en una identidad y rellena un rectángulo con un pincel rojo sólido.Resets the world transform of the form to an identity and fills a rectangle with a solid red brush.

  • Restaura el estado de gráficos traducido y rellena un segundo rectángulo con un pincel azul sólido.Restores the translated graphics state and fills a second rectangle with a solid blue brush.

El resultado es un rectángulo relleno rojo sin traducir y un rectángulo relleno azul traducido.The result is an untranslated red-filled rectangle and a translated blue-filled rectangle.

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

Comentarios

Cuando se llama al Save método de un Graphics, Graphics se coloca un bloque de información que contiene el estado de en una pila.When you call the Save method of a Graphics, an information block that holds the state of the Graphics is put on a stack. El Save método devuelve un GraphicsState que identifica ese bloque de información.The Save method returns a GraphicsState that identifies that information block. Cuando se pasa la identificación GraphicsState Restore al método, el bloque de información se quita de la pila y Graphics se usa para restaurar al estado en el que se encontraba en el momento Save de la llamada al método.When you pass the identifying GraphicsState to the Restore method, the information block is removed from the stack and is used to restore the Graphics to the state it was in at the time of the Save method call. Tenga en cuenta GraphicsState que el devuelto por una llamada Save determinada al método solo se puede Restore pasar una vez al método.Note that the GraphicsState returned by a given call to the Save method can be passed only once to the Restore method.

Las llamadas al Save método se pueden anidar; es decir, puede llamar varias veces Save al método antes de llamar al Restore método.Calls to the Save method can be nested; that is, you can call the Save method several times before you call the Restore method. Cada vez que se llama Save al método, se coloca un bloque de información en la pila y se recibe GraphicsState un para el bloque de información.Each time you call the Save method, an information block is put on the stack, and you receive a GraphicsState for the information block. Cuando se pasa uno de esos objetos Restore al método Graphics , se devuelve al estado en el que se encontraba en el momento de Save la llamada al método que devolvió ese determinado. GraphicsStateWhen you pass one of those objects to the Restore method, the Graphics is returned to the state it was in at the time of the Save method call that returned that particular GraphicsState. El bloque de información colocado en la pila por Save esa llamada al método se quita de la pila, y todos los bloques de información colocados en esa pila después de esa Save llamada al método también se quitan.The information block placed on the stack by that Save method call is removed from the stack, and all information blocks placed on that stack after that Save method call are also removed.

Las BeginContainer llamadas al método colocan bloques de información en la misma pila como Save llamadas al método.Calls to the BeginContainer method place information blocks on the same stack as calls to the Save method. Del mismo modo Restore que una llamada se empareja con Save una llamada a EndContainer , una llamada al método se empareja BeginContainer con una llamada al método.Just as a Restore call is paired with a Save call, a EndContainer method call is paired with a BeginContainer method call.

Cuando se llama al Restore método, todos los bloques de información colocados en la Save pila (mediante el BeginContainer método o el Save método) después de que se quite de la pila la llamada correspondiente al método.When you call the Restore method, all information blocks placed on the stack (by the Save method or by the BeginContainer method) after the corresponding call to the Save method are removed from the stack. Del mismo modo, cuando se EndContainer llama al método, todos los bloques de información colocados Save en la pila ( BeginContainer mediante el método o el BeginContainer método) después de que la llamada correspondiente al método se quite de la pila.Likewise, when you call the EndContainer method, all information blocks placed on the stack (by the Save method or by the BeginContainer method) after the corresponding call to the BeginContainer method are removed from the stack.

Se aplica a