Graphics.Save Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Slaat de huidige status hiervan Graphics op en identificeert de opgeslagen status met een 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
Retouren
Deze methode retourneert een GraphicsState die de opgeslagen status van deze Graphicsstaat vertegenwoordigt.
Voorbeelden
Het volgende codevoorbeeld is ontworpen voor gebruik met Windows Forms en vereist PaintEventArgse, een parameter van de Paint gebeurtenis-handler. De code voert de volgende acties uit:
Vertaalt de wereldtransformatie van de Windows Formulier door een vector (100, 0).
Hiermee wordt de grafische status van het formulier opgeslagen.
Stelt de wereldtransformatie van het formulier opnieuw in op een identiteit (2x2 identiteitsmatrix plus een nulvectorvertaling) en vult een rechthoek met een effen rode kwast.
Hiermee herstelt u de vertaalde grafische status en vult u een rechthoek met een effen blauwe borstel.
Het resultaat is een niet-vertaalde rood gevulde rechthoek aan de linkerkant en een vertaalde blauw gevulde rechthoek rechts van het formulier.
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
Opmerkingen
Wanneer u de Save methode van een Graphicsaanroept, wordt een informatieblok met de status van de Graphics gegevens op een stapel geplaatst. De Save methode retourneert een GraphicsState die dat informatieblok identificeert. Wanneer u de identificatie GraphicsState doorgeeft aan de Restore methode, wordt het informatieblok uit de stack verwijderd en gebruikt om de Graphics status te herstellen waarin het zich bevond op het moment van de Save methode-aanroep. Houd er rekening mee dat de GraphicsState geretourneerde door een bepaalde aanroep van de Save methode slechts één keer aan de Restore methode kan worden doorgegeven.
Aanroepen naar de Save methode kunnen worden genest. Dat wil gezegd, u kunt de Save methode meerdere keren aanroepen voordat u de Restore methode aanroept. Telkens wanneer u de Save methode aanroept, wordt er een informatieblok op de stapel geplaatst en ontvangt u een GraphicsState voor het informatieblok. Wanneer u een van deze objecten doorgeeft aan de Restore methode, wordt deze Graphics geretourneerd naar de status waarin deze zich bevond op het moment van de Save methode-aanroep die dat specifieke object GraphicsStateheeft geretourneerd. Het informatieblok dat door die Save methodeaanroep op de stack wordt geplaatst, wordt verwijderd uit de stack en alle informatieblokken die na die methodeaanroep op die Save stapel worden geplaatst, worden ook verwijderd.
Aanroepen naar de BeginContainer methode plaatsen informatieblokken op dezelfde stack als aanroepen naar de Save methode. Net zoals een Restore aanroep is gekoppeld aan een Save aanroep, wordt een EndContainer methode-aanroep gekoppeld aan een BeginContainer methode-aanroep.
Wanneer u de Restore methode aanroept, worden alle informatieblokken die op de stack worden geplaatst (door de Save methode of door de BeginContainer methode) na de bijbehorende aanroep van de Save methode verwijderd uit de stack. Wanneer u de EndContainer methode aanroept, worden alle informatieblokken die op de stapel worden geplaatst (door de Save methode of door de BeginContainer methode) na de bijbehorende aanroep van de BeginContainer methode verwijderd uit de stack.