Condividi tramite


Graphics.BeginContainer Metodo

Definizione

Salva un contenitore grafico con lo stato corrente di questo Graphics e apre e usa un nuovo contenitore grafico.

Overload

BeginContainer()

Salva un contenitore grafico con lo stato corrente di questo Graphics e apre e usa un nuovo contenitore grafico.

BeginContainer(Rectangle, Rectangle, GraphicsUnit)

Salva un contenitore grafico con lo stato corrente di questo Graphics e apre e usa un nuovo contenitore grafico con la trasformazione di scalabilità specificata.

BeginContainer(RectangleF, RectangleF, GraphicsUnit)

Salva un contenitore grafico con lo stato corrente di questo Graphics e apre e usa un nuovo contenitore grafico con la trasformazione di scalabilità specificata.

BeginContainer()

Origine:
Graphics.cs
Origine:
Graphics.cs
Origine:
Graphics.cs
Origine:
Graphics.cs
Origine:
Graphics.cs

Salva un contenitore grafico con lo stato corrente di questo Graphics e apre e usa un nuovo contenitore grafico.

public:
 System::Drawing::Drawing2D::GraphicsContainer ^ BeginContainer();
public System.Drawing.Drawing2D.GraphicsContainer BeginContainer ();
member this.BeginContainer : unit -> System.Drawing.Drawing2D.GraphicsContainer
Public Function BeginContainer () As GraphicsContainer

Restituisce

Questo metodo restituisce un GraphicsContainer che rappresenta lo stato di questo Graphics al momento della chiamata al metodo.

Esempio

L'esempio di codice seguente è progettato per l'uso con Windows Form e richiede PaintEventArgse, che è un parametro del gestore eventi Paint. Il codice esegue le azioni seguenti:

  • Apre un nuovo contenitore grafico e salva il contenitore precedente.

  • Converte le coordinate del mondo nel contenitore.

  • Riempie un rettangolo rosso nelle coordinate tradotte del nuovo contenitore.

  • Chiude il nuovo contenitore e ripristina il contenitore salvato.

  • Riempie un rettangolo verde (alle coordinate non convertite) del contenitore salvato.

Il risultato è un rettangolo verde che sovralizza un rettangolo rosso con le stesse dimensioni.

private:
   void BeginContainerVoid( PaintEventArgs^ e )
   {
      // Begin graphics container.
      GraphicsContainer^ containerState = e->Graphics->BeginContainer();

      // Translate world transformation.
      e->Graphics->TranslateTransform( 100.0F, 100.0F );

      // Fill translated rectangle in container with red.
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Red ), 0, 0, 200, 200 );

      // End graphics container.
      e->Graphics->EndContainer( containerState );

      // Fill untransformed rectangle with green.
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Green ), 0, 0, 200, 200 );
   }
private void BeginContainerVoid(PaintEventArgs e)
{
    // Begin graphics container.
    GraphicsContainer containerState = e.Graphics.BeginContainer();
             
    // Translate world transformation.
    e.Graphics.TranslateTransform(100.0F, 100.0F);
             
    // Fill translated rectangle in container with red.
    e.Graphics.FillRectangle(new SolidBrush(Color.Red), 0, 0, 200, 200);
             
    // End graphics container.
    e.Graphics.EndContainer(containerState);
             
    // Fill untransformed rectangle with green.
    e.Graphics.FillRectangle(new SolidBrush(Color.Green), 0, 0, 200, 200);
}
Private Sub BeginContainerVoid(ByVal e As PaintEventArgs)

    ' Begin graphics container.
    Dim containerState As GraphicsContainer = _
    e.Graphics.BeginContainer()

    ' Translate world transformation.
    e.Graphics.TranslateTransform(100.0F, 100.0F)

    ' Fill translated rectangle in container with red.
    e.Graphics.FillRectangle(New SolidBrush(Color.Red), 0, 0, 200, 200)

    ' End graphics container.
    e.Graphics.EndContainer(containerState)

    ' Fill untransformed rectangle with green.
    e.Graphics.FillRectangle(New SolidBrush(Color.Green), 0, 0, _
    200, 200)
End Sub

Commenti

Usare questo metodo con il metodo EndContainer per creare contenitori grafici annidati. I contenitori grafici mantengono lo stato della grafica, ad esempio trasformazione, area di ritaglio e proprietà di rendering.

Quando si chiama il metodo BeginContainer di un Graphics, un blocco di informazioni che contiene lo stato del Graphics viene inserito in uno stack. Il metodo BeginContainer restituisce un GraphicsContainer che identifica tale blocco di informazioni. Quando si passa l'oggetto di identificazione al metodo EndContainer, il blocco di informazioni viene rimosso dallo stack e viene usato per ripristinare il Graphics allo stato in cui si trovava al momento della chiamata al metodo BeginContainer.

I contenitori possono essere annidati; ovvero, è possibile chiamare il metodo BeginContainer più volte prima di chiamare il metodo EndContainer. Ogni volta che si chiama il metodo BeginContainer, viene inserito un blocco di informazioni nello stack e si riceve un GraphicsContainer per il blocco di informazioni. Quando si passa uno di questi oggetti al metodo EndContainer, il Graphics viene restituito allo stato in cui si trovava al momento della chiamata al metodo BeginContainer che ha restituito quel particolare GraphicsContainer. Il blocco di informazioni posizionato nello stack da tale chiamata al metodo BeginContainer viene rimosso dallo stack e tutti i blocchi di informazioni posizionati nello stack dopo tale chiamata al metodo BeginContainer vengono rimossi.

Le chiamate al metodo Save inseriscono blocchi di informazioni sullo stesso stack delle chiamate al metodo BeginContainer. Proprio come una chiamata al metodo EndContainer è associata a una chiamata al metodo BeginContainer, una chiamata al metodo Restore viene associata a una chiamata al metodo Save.

Quando si chiama il metodo EndContainer, tutti i blocchi di informazioni posizionati nello stack (dal metodo Save o dal metodo BeginContainer) dopo la chiamata corrispondente al metodo BeginContainer vengono rimossi dallo stack. Analogamente, quando si chiama il metodo Restore, tutti i blocchi di informazioni posizionati nello stack (dal metodo Save o dal metodo BeginContainer) dopo la chiamata corrispondente al metodo Save vengono rimossi dallo stack.

Lo stato della grafica stabilito dal metodo BeginContainer include le qualità di rendering dello stato grafico predefinito; qualsiasi stato di qualità del rendering cambia esistente quando viene chiamato il metodo viene reimpostato sui valori predefiniti.

Si applica a

BeginContainer(Rectangle, Rectangle, GraphicsUnit)

Origine:
Graphics.cs
Origine:
Graphics.cs
Origine:
Graphics.cs
Origine:
Graphics.cs
Origine:
Graphics.cs

Salva un contenitore grafico con lo stato corrente di questo Graphics e apre e usa un nuovo contenitore grafico con la trasformazione di scalabilità specificata.

public:
 System::Drawing::Drawing2D::GraphicsContainer ^ BeginContainer(System::Drawing::Rectangle dstrect, System::Drawing::Rectangle srcrect, System::Drawing::GraphicsUnit unit);
public System.Drawing.Drawing2D.GraphicsContainer BeginContainer (System.Drawing.Rectangle dstrect, System.Drawing.Rectangle srcrect, System.Drawing.GraphicsUnit unit);
member this.BeginContainer : System.Drawing.Rectangle * System.Drawing.Rectangle * System.Drawing.GraphicsUnit -> System.Drawing.Drawing2D.GraphicsContainer
Public Function BeginContainer (dstrect As Rectangle, srcrect As Rectangle, unit As GraphicsUnit) As GraphicsContainer

Parametri

dstrect
Rectangle

Rectangle struttura che, insieme al parametro srcrect, specifica una trasformazione di scalabilità per il contenitore.

srcrect
Rectangle

Rectangle struttura che, insieme al parametro dstrect, specifica una trasformazione di scalabilità per il contenitore.

unit
GraphicsUnit

Membro dell'enumerazione GraphicsUnit che specifica l'unità di misura per il contenitore.

Restituisce

Questo metodo restituisce un GraphicsContainer che rappresenta lo stato di questo Graphics al momento della chiamata al metodo.

Esempio

L'esempio di codice seguente è progettato per l'uso con Windows Form e richiede PaintEventArgse, che è un parametro del gestore eventi Paint. Il codice esegue le azioni seguenti:

  • Crea due rettangoli per specificare una trasformazione di scalabilità per il nuovo contenitore.

  • Apre il nuovo contenitore grafico e salva il contenitore precedente.

  • Riempie un rettangolo rosso nelle coordinate scalate del nuovo contenitore.

  • Chiude il nuovo contenitore e ripristina il contenitore salvato.

  • Riempie un rettangolo verde (alle coordinate non ridimensionate) del contenitore salvato.

Il risultato è un rettangolo verde che sovralizza un rettangolo rosso più piccolo.

private:
   void BeginContainerRectangle( PaintEventArgs^ e )
   {
      // Define transformation for container.
      Rectangle srcRect = Rectangle(0,0,200,200);
      Rectangle destRect = Rectangle(100,100,150,150);

      // Begin graphics container.
      GraphicsContainer^ containerState = e->Graphics->BeginContainer( destRect, srcRect, GraphicsUnit::Pixel );

      // Fill red rectangle in container.
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Red ), 0, 0, 200, 200 );

      // End graphics container.
      e->Graphics->EndContainer( containerState );

      // Fill untransformed rectangle with green.
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Green ), 0, 0, 200, 200 );
   }
private void BeginContainerRectangle(PaintEventArgs e)
{
    // Define transformation for container.
    Rectangle srcRect = new Rectangle(0, 0, 200, 200);
    Rectangle destRect = new Rectangle(100, 100, 150, 150);
             
    // Begin graphics container.
    GraphicsContainer containerState = e.Graphics.BeginContainer(
        destRect, srcRect,
        GraphicsUnit.Pixel);
             
    // Fill red rectangle in container.
    e.Graphics.FillRectangle(new SolidBrush(Color.Red), 0, 0, 200, 200);
             
    // End graphics container.
    e.Graphics.EndContainer(containerState);
             
    // Fill untransformed rectangle with green.
    e.Graphics.FillRectangle(new SolidBrush(Color.Green), 0, 0, 200, 200);
}
Private Sub BeginContainerRectangle(ByVal e As PaintEventArgs)

    ' Define transformation for container.
    Dim srcRect As New Rectangle(0, 0, 200, 200)
    Dim destRect As New Rectangle(100, 100, 150, 150)

    ' Begin graphics container.
    Dim containerState As GraphicsContainer = _
    e.Graphics.BeginContainer(destRect, srcRect, GraphicsUnit.Pixel)

    ' Fill red rectangle in container.
    e.Graphics.FillRectangle(New SolidBrush(Color.Red), 0, 0, 200, 200)

    ' End graphics container.
    e.Graphics.EndContainer(containerState)

    ' Fill untransformed rectangle with green.
    e.Graphics.FillRectangle(New SolidBrush(Color.Green), 0, 0, _
    200, 200)
End Sub

Commenti

Usare questo metodo con il metodo EndContainer per creare contenitori grafici annidati. I contenitori grafici mantengono lo stato della grafica, ad esempio trasformazione, area di ritaglio e proprietà di rendering.

Quando si chiama il metodo BeginContainer di un Graphics, un blocco di informazioni che contiene lo stato del Graphics viene inserito in uno stack. Il metodo BeginContainer restituisce un GraphicsContainer che identifica tale blocco di informazioni. Quando si passa l'oggetto di identificazione al metodo EndContainer, il blocco di informazioni viene rimosso dallo stack e viene usato per ripristinare il Graphics allo stato in cui si trovava al momento della chiamata al metodo BeginContainer.

I contenitori possono essere annidati; ovvero, è possibile chiamare il metodo BeginContainer più volte prima di chiamare il metodo EndContainer. Ogni volta che si chiama il metodo BeginContainer, viene inserito un blocco di informazioni nello stack e si riceve un GraphicsContainer per il blocco di informazioni. Quando si passa uno di questi oggetti al metodo EndContainer, il Graphics viene restituito allo stato in cui si trovava al momento della chiamata al metodo BeginContainer che ha restituito quel particolare GraphicsContainer. Il blocco di informazioni posizionato nello stack da tale chiamata al metodo BeginContainer viene rimosso dallo stack e tutti i blocchi di informazioni posizionati nello stack dopo tale chiamata al metodo BeginContainer vengono rimossi.

Le chiamate al metodo Save inseriscono blocchi di informazioni sullo stesso stack delle chiamate al metodo BeginContainer. Proprio come una chiamata al metodo EndContainer è associata a una chiamata al metodo BeginContainer, una chiamata al metodo Restore viene associata a una chiamata al metodo Save.

Quando si chiama il metodo EndContainer, tutti i blocchi di informazioni posizionati nello stack (dal metodo Save o dal metodo BeginContainer) dopo la chiamata corrispondente al metodo BeginContainer vengono rimossi dallo stack. Analogamente, quando si chiama il metodo Restore, tutti i blocchi di informazioni posizionati nello stack (dal metodo Save o dal metodo BeginContainer) dopo la chiamata corrispondente al metodo Save vengono rimossi dallo stack.

Questo metodo specifica una trasformazione della scalabilità per il nuovo contenitore grafico con i parametri dstrect e srcrect. La scala è uguale alla trasformazione che, se applicata a srcrect, restituisce dstrect.

Lo stato della grafica stabilito dal metodo BeginContainer include le qualità di rendering dello stato grafico predefinito; qualsiasi stato di qualità del rendering cambia esistente quando viene chiamato il metodo viene reimpostato sui valori predefiniti.

Si applica a

BeginContainer(RectangleF, RectangleF, GraphicsUnit)

Origine:
Graphics.cs
Origine:
Graphics.cs
Origine:
Graphics.cs
Origine:
Graphics.cs
Origine:
Graphics.cs

Salva un contenitore grafico con lo stato corrente di questo Graphics e apre e usa un nuovo contenitore grafico con la trasformazione di scalabilità specificata.

public:
 System::Drawing::Drawing2D::GraphicsContainer ^ BeginContainer(System::Drawing::RectangleF dstrect, System::Drawing::RectangleF srcrect, System::Drawing::GraphicsUnit unit);
public System.Drawing.Drawing2D.GraphicsContainer BeginContainer (System.Drawing.RectangleF dstrect, System.Drawing.RectangleF srcrect, System.Drawing.GraphicsUnit unit);
member this.BeginContainer : System.Drawing.RectangleF * System.Drawing.RectangleF * System.Drawing.GraphicsUnit -> System.Drawing.Drawing2D.GraphicsContainer
Public Function BeginContainer (dstrect As RectangleF, srcrect As RectangleF, unit As GraphicsUnit) As GraphicsContainer

Parametri

dstrect
RectangleF

RectangleF struttura che, insieme al parametro srcrect, specifica una trasformazione della scala per il nuovo contenitore grafico.

srcrect
RectangleF

RectangleF struttura che, insieme al parametro dstrect, specifica una trasformazione della scala per il nuovo contenitore grafico.

unit
GraphicsUnit

Membro dell'enumerazione GraphicsUnit che specifica l'unità di misura per il contenitore.

Restituisce

Questo metodo restituisce un GraphicsContainer che rappresenta lo stato di questo Graphics al momento della chiamata al metodo.

Esempio

L'esempio di codice seguente è progettato per l'uso con Windows Form e richiede PaintEventArgse, che è un parametro del gestore eventi Paint. Il codice esegue le azioni seguenti:

  • Crea due rettangoli per specificare una trasformazione di scalabilità per il nuovo contenitore.

  • Apre il nuovo contenitore grafico e salva il contenitore precedente.

  • Riempie un rettangolo rosso nelle coordinate scalate del nuovo contenitore.

  • Chiude il nuovo contenitore e ripristina il contenitore salvato.

  • Riempie un rettangolo verde (alle coordinate non ridimensionate) del contenitore salvato.

Il risultato è un rettangolo verde che sovralizza un rettangolo rosso più piccolo.

private:
   void BeginContainerRectangleF( PaintEventArgs^ e )
   {
      // Define transformation for container.
      RectangleF srcRect = RectangleF(0.0F,0.0F,200.0F,200.0F);
      RectangleF destRect = RectangleF(100.0F,100.0F,150.0F,150.0F);

      // Begin graphics container.
      GraphicsContainer^ containerState = e->Graphics->BeginContainer( destRect, srcRect, GraphicsUnit::Pixel );

      // Fill red rectangle in container.
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Red ), 0.0F, 0.0F, 200.0F, 200.0F );

      // End graphics container.
      e->Graphics->EndContainer( containerState );

      // Fill untransformed rectangle with green.
      e->Graphics->FillRectangle( gcnew SolidBrush( Color::Green ), 0.0F, 0.0F, 200.0F, 200.0F );
   }
private void BeginContainerRectangleF(PaintEventArgs e)
{
    // Define transformation for container.
    RectangleF srcRect = new RectangleF(0.0F, 0.0F, 200.0F, 200.0F);
    RectangleF destRect = new RectangleF(100.0F, 100.0F, 150.0F, 150.0F);
             
    // Begin graphics container.
    GraphicsContainer containerState = e.Graphics.BeginContainer(
        destRect, srcRect,
        GraphicsUnit.Pixel);
             
    // Fill red rectangle in container.
    e.Graphics.FillRectangle(new SolidBrush(Color.Red), 0.0F, 0.0F, 200.0F, 200.0F);
             
    // End graphics container.
    e.Graphics.EndContainer(containerState);
             
    // Fill untransformed rectangle with green.
    e.Graphics.FillRectangle(new SolidBrush(Color.Green), 0.0F, 0.0F, 200.0F, 200.0F);
}
Private Sub BeginContainerRectangleF(ByVal e As PaintEventArgs)

    ' Define transformation for container.
    Dim srcRect As New RectangleF(0.0F, 0.0F, 200.0F, 200.0F)
    Dim destRect As New RectangleF(100.0F, 100.0F, 150.0F, 150.0F)

    ' Begin graphics container.
    Dim containerState As GraphicsContainer = _
    e.Graphics.BeginContainer(destRect, srcRect, GraphicsUnit.Pixel)

    ' Fill red rectangle in container.
    e.Graphics.FillRectangle(New SolidBrush(Color.Red), 0.0F, 0.0F, _
    200.0F, 200.0F)

    ' End graphics container.
    e.Graphics.EndContainer(containerState)

    ' Fill untransformed rectangle with green.
    e.Graphics.FillRectangle(New SolidBrush(Color.Green), 0.0F, 0.0F, _
    200.0F, 200.0F)
End Sub

Commenti

Usare questo metodo con il metodo EndContainer per creare contenitori grafici annidati. I contenitori grafici mantengono lo stato della grafica, ad esempio trasformazione, area di ritaglio e proprietà di rendering.

Quando si chiama il metodo BeginContainer di un Graphics, un blocco di informazioni che contiene lo stato del Graphics viene inserito in uno stack. Il metodo BeginContainer restituisce un GraphicsContainer che identifica tale blocco di informazioni. Quando si passa l'oggetto di identificazione al metodo EndContainer, il blocco di informazioni viene rimosso dallo stack e viene usato per ripristinare il Graphics allo stato in cui si trovava al momento della chiamata al metodo BeginContainer.

I contenitori possono essere annidati; ovvero, è possibile chiamare il metodo BeginContainer più volte prima di chiamare il metodo EndContainer. Ogni volta che si chiama il metodo BeginContainer, viene inserito un blocco di informazioni nello stack e si riceve un GraphicsContainer per il blocco di informazioni. Quando si passa uno di questi oggetti al metodo EndContainer, il Graphics viene restituito allo stato in cui si trovava al momento della chiamata al metodo BeginContainer che ha restituito quel particolare GraphicsContainer. Il blocco di informazioni posizionato nello stack da tale chiamata al metodo BeginContainer viene rimosso dallo stack e tutti i blocchi di informazioni posizionati nello stack dopo tale chiamata al metodo BeginContainer vengono rimossi.

Le chiamate al metodo Save inseriscono blocchi di informazioni sullo stesso stack delle chiamate al metodo BeginContainer. Proprio come una chiamata al metodo EndContainer è associata a una chiamata al metodo BeginContainer, una chiamata al metodo Restore viene associata a una chiamata al metodo Save.

Quando si chiama il metodo EndContainer, tutti i blocchi di informazioni posizionati nello stack (dal metodo Save o dal metodo BeginContainer) dopo la chiamata corrispondente al metodo BeginContainer vengono rimossi dallo stack. Analogamente, quando si chiama il metodo Restore, tutti i blocchi di informazioni posizionati nello stack (dal metodo Save o dal metodo BeginContainer) dopo la chiamata corrispondente al metodo Save vengono rimossi dallo stack.

Questo metodo specifica una trasformazione della scalabilità per il nuovo contenitore grafico con i parametri dstrect e srcrect. La scala è uguale alla trasformazione che, se applicata a srcrect, restituisce dstrect.

Lo stato della grafica stabilito dal metodo BeginContainer include le qualità di rendering dello stato grafico predefinito; qualsiasi stato di qualità del rendering cambia esistente quando viene chiamato il metodo viene reimpostato sui valori predefiniti.

Si applica a