Graphics.Save Méthode

Définition

Enregistre l'état actuel de ce Graphics et identifie l'état enregistré avec GraphicsState.

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

Retours

Cette méthode retourne GraphicsState qui représente l'état enregistré de ce Graphics.

Exemples

L’exemple de code suivant est conçu pour être utilisé avec Windows Forms et nécessite PaintEventArgse, qui est un paramètre du Paint gestionnaire d’événements. Le code effectue les actions suivantes :

  • Traduit la transformation mondiale du Windows Form par un vecteur (100, 0).

  • Enregistre l’état graphique du formulaire.

  • Réinitialise la transformation du monde du formulaire en une identité (matrice d’identité 2x2 plus une traduction à vecteur zéro) et remplit un rectangle avec un pinceau rouge uni.

  • Restaure l’état graphique traduit et remplit un rectangle avec un pinceau bleu uni.

Le résultat est un rectangle rouge non traduit à gauche et un rectangle bleu traduit à droite du formulaire.

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

Remarques

Lorsque vous appelez la Save méthode d’un Graphics, un bloc d’informations qui contient l’état de Graphics est placé sur une pile. La Save méthode retourne un GraphicsState qui identifie ce bloc d’informations. Lorsque vous transmettez l’identification GraphicsState à la Restore méthode, le bloc d’informations est supprimé de la pile et est utilisé pour restaurer l’état Graphics dans lequel il se trouvait au moment de l’appel de méthode Save . Notez que le GraphicsState retourné par un appel donné à la Save méthode ne peut être passé qu’une seule fois à la Restore méthode.

Les appels à la Save méthode peuvent être imbriqués ; autrement dit, vous pouvez appeler la Save méthode plusieurs fois avant d’appeler la Restore méthode. Chaque fois que vous appelez la Save méthode, un bloc d’informations est placé sur la pile et vous recevez un pour le bloc d’informations GraphicsState . Lorsque vous passez l’un de ces objets à la méthode, le RestoreGraphics est retourné à l’état dans lequel il se trouvait au moment de l’appel de méthode Save qui a retourné ce particulier GraphicsState. Le bloc d’informations placé sur la pile par cet Save appel de méthode est supprimé de la pile, et tous les blocs d’informations placés sur cette pile après cet Save appel de méthode sont également supprimés.

Les appels à la BeginContainer méthode placent des blocs d’informations sur la même pile que les appels à la Save méthode. Tout comme un Restore appel est associé à un Save appel, un EndContainer appel de méthode est associé à un BeginContainer appel de méthode.

Lorsque vous appelez la Restore méthode, tous les blocs d’informations placés sur la pile (par la Save méthode ou par la BeginContainer méthode) après la suppression de l’appel correspondant à la Save méthode de la pile. De même, lorsque vous appelez la EndContainer méthode, tous les blocs d’informations placés sur la pile (par la Save méthode ou par la BeginContainer méthode) après la suppression de l’appel correspondant à la BeginContainer méthode de la pile.

S’applique à