Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Graphics.BeginContainer (RectangleF, RectangleF, GraphicsUnit)

 

Data di pubblicazione: ottobre 2016

Salva un contenitore grafico con lo stato corrente di questo oggetto Graphics e apre e usa un nuovo contenitore grafico con la trasformazione in scala specificata.

Spazio dei nomi:   System.Drawing
Assembly:  System.Drawing (in System.Drawing.dll)

public GraphicsContainer BeginContainer(
	RectangleF dstrect,
	RectangleF srcrect,
	GraphicsUnit unit
)

Parametri

dstrect
Type: System.Drawing.RectangleF

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

srcrect
Type: System.Drawing.RectangleF

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

unit
Type: System.Drawing.GraphicsUnit

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

Valore restituito

Type: System.Drawing.Drawing2D.GraphicsContainer

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

Utilizzare questo metodo con il EndContainer metodo per creare contenitori di grafica annidati. Contenitori di grafica mantengono lo stato di grafica, ad esempio di trasformazione, l'area di visualizzazione e le proprietà di rendering.

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

I contenitori possono essere annidati. vale a dire, è possibile chiamare il BeginContainer metodo più volte prima di chiamare il EndContainer metodo. Ogni volta che viene chiamato il BeginContainer (metodo), un blocco di informazioni viene inserito nello stack e viene visualizzato un GraphicsContainer per il blocco di informazioni. Quando si passa uno di questi oggetti per il EndContainer (metodo), il Graphics viene restituito lo stato in cui si trovava al momento del BeginContainer chiamata al metodo che ha restituito quel particolare GraphicsContainer. Il blocco di informazioni inseriti nello stack da tale BeginContainer chiamata al metodo viene rimosso dallo stack e collocati tutti i blocchi di informazioni sullo stack dopo che BeginContainer vengono rimossi anche chiamata al metodo.

Le chiamate al Save metodo collocano blocchi di informazioni sullo stesso stack di chiamate al BeginContainer metodo. Proprio come un EndContainer chiamata al metodo è associata un BeginContainer chiamata al metodo, un Restore chiamata al metodo è associata un Save chiamata al metodo.

Quando si chiama il EndContainer (metodo), tutti i blocchi di informazioni collocati nello stack (dal Save (metodo) oppure il BeginContainer (metodo)) dopo la chiamata corrispondente al BeginContainer metodo vengono rimosse dallo stack. Allo stesso modo, quando si chiama il Restore (metodo), tutti i blocchi di informazioni collocati nello stack (dal Save (metodo) oppure il BeginContainer (metodo)) dopo la chiamata corrispondente al Save metodo vengono rimosse dallo stack.

Questo metodo specifica una trasformazione in scala per il nuovo contenitore grafico con il dstrect e srcrect i parametri. La scala è uguale alla trasformazione che, quando applicato a srcrect, comporta dstrect.

Lo stato grafico istituito il BeginContainer metodo include la qualità di rendering dello stato predefinito, le modifiche di stato di qualità di rendering esistente quando viene chiamato il metodo vengono reimpostate sui valori predefiniti.

Esempio di codice seguente è progettato per l'utilizzo con Windows Form e richiede PaintEventArgse, ovvero un parametro del Paint gestore dell'evento. Nel codice vengono eseguite le seguenti azioni:

  • Creazione di due rettangoli per specificare una trasformazione in scala per il nuovo contenitore.

  • Apre il nuovo contenitore grafico e salvataggio del contenitore precedente.

  • Inserisce un rettangolo rosso la (le coordinate scalate le) nuovo contenitore.

  • Chiude il nuovo contenitore e ripristino del contenitore salvato.

  • Riempimento di un rettangolo verde (in corrispondenza delle coordinate non in scala) del contenitore salvato.

Il risultato è un rettangolo verde sovrapposto a un rettangolo rosso più piccolo.

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);
}

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: