Graphics.Save Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Enregistre l’état actuel de cette Graphics opération et identifie l’état enregistré avec un 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 un 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 gestionnaire d’événements Paint. Le code effectue les actions suivantes :
Traduit la transformation mondiale de la forme Windows par un vecteur (100, 0).
Enregistre l’état graphique du formulaire.
Réinitialise la transformation du monde du formulaire à une identité (matrice d’identité 2x2 plus une traduction de vecteur zéro) et remplit un rectangle avec un pinceau rouge plein.
Restaure l’état graphique traduit et remplit un rectangle avec un pinceau bleu unie.
Le résultat est un rectangle à remplissage 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 Graphicsbloc d’informations qui contient l’état de l’objet Graphics est placé sur une pile. La Save méthode retourne un GraphicsState qui identifie ce bloc d’informations. Lorsque vous passez 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 retour par un appel donné à la Save méthode ne peut être transmis 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 GraphicsState pour le bloc d’informations. Lorsque vous passez l’un de ces objets à la Restore méthode, il Graphics est retourné à l’état dans lequel il se trouvait au moment de l’appel Save de méthode 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 l’appel correspondant à la méthode sont supprimés de la Save 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 l’appel correspondant à la BeginContainer méthode sont supprimés de la pile.