Condividi tramite


Pennelli e forme con riempimento in GDI+

Una forma chiusa, quale un rettangolo o un'ellisse, è costituita da un contorno e da un interno. Il contorno viene tracciato con una penna e l'interno viene riempito con un pennello. In GDI+ sono disponibili diverse classi di pennelli per il riempimento dell'interno di forme chiuse: SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush e PathGradientBrush. Tutte queste classi ereditano dalla classe Brush. Nell'immagine seguente viene mostrato un rettangolo riempito con un pennello a tinta unita e una ellisse riempita con un pennello tratteggiato.

Forme piene

Pennelli a tinta unita

Per riempire una forma chiusa, sono necessari un'istanza della classe Graphics e Brush. L'istanza della classe Graphics fornisce i metodi, quali FillRectangle e FillEllipse mentre nell'oggetto Brush vengono memorizzati gli attributi del riempimento, quali il colore e il motivo. L'oggetto Brush viene passato come uno degli argomenti al metodo di riempimento. Nell'esempio che segue è illustrato come riempire un'ellisse con il colore rosso a tinta unita.

        Dim mySolidBrush As New SolidBrush(Color.Red)
        myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40)

SolidBrush mySolidBrush = new SolidBrush(Color.Red);
myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40);

Nota

Nell'esempio precedente il pennello è di tipo SolidBrush ed eredita da Brush.

Pennello tratteggiato

Quando si riempie una forma con un pennello tratteggiato, si specifica un colore di primo piano, un colore di sfondo e uno stile di tratteggio. Il colore di primo piano è il colore utilizzato per il tratteggio.

        Dim myHatchBrush As _
           New HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green)

HatchBrush myHatchBrush =
   new HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green);

In GDI+ sono disponibili oltre 50 stili di tratteggio. I tre stili mostrati nell'immagine seguente sono Horizontal, ForwardDiagonal e Cross.

Forme piene

Pennelli a trama

Un pennello a trama consente di riempire una forma con un modello memorizzato in una bitmap. Si supponga ad esempio che l'immagine seguente sia memorizzata in un file su disco con nome MyTexture.bmp.

Forma piena

L'esempio seguente consente di riempire un'ellisse ripetendo l'immagine memorizzata in MyTexture.bmp.

        Dim myImage As Image = Image.FromFile("MyTexture.bmp")
        Dim myTextureBrush As New TextureBrush(myImage)
        myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50)

Image myImage = Image.FromFile("MyTexture.bmp");
TextureBrush myTextureBrush = new TextureBrush(myImage);
myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50);

Nell'illustrazione che segue viene mostrata l'ellisse riempita.

Forma piena

Pennelli sfumati

In GDI+ sono disponibili due tipi di pennelli sfumati: lineare e di percorso. Un pennello sfumato lineare consente di riempire una forma con un colore che sfuma gradatamente in un altro colore lungo la forma, orizzontalmente, verticalmente o in diagonale. L'esempio seguente consente di riempire un'ellisse con un pennello sfumato orizzontale il cui colore passa da blu a verde a partire dal margine sinistro dell'ellisse verso il margine destro.

        Dim myLinearGradientBrush As New LinearGradientBrush( _
           myRectangle, _
           Color.Blue, _
           Color.Green, _
           LinearGradientMode.Horizontal)
        myGraphics.FillEllipse(myLinearGradientBrush, myRectangle)

LinearGradientBrush myLinearGradientBrush = new LinearGradientBrush(
   myRectangle,
   Color.Blue,
   Color.Green,
   LinearGradientMode.Horizontal);
myGraphics.FillEllipse(myLinearGradientBrush, myRectangle);

Nell'illustrazione che segue viene mostrata l'ellisse riempita.

Forma piena

È possibile configurare un pennello sfumato di percorso in modo che il colore sfumi a partire dal centro di un'immagine e verso i contorni.

Forma piena

I pennelli sfumati di percorso sono abbastanza flessibili. Il pennello sfumato utilizzato per riempire il triangolo mostrato nell'immagine seguente consente di sfumare gradualmente dal colore rosso del centro a tre colori diversi per i vertici.

Forma piena

Vedere anche

Attività

Procedura: disegnare un rettangolo con riempimento in un Windows Form

Procedura: disegnare un'ellisse con riempimento in un Windows Form

Riferimenti

System.Drawing.SolidBrush

System.Drawing.Drawing2D.HatchBrush

System.Drawing.TextureBrush

System.Drawing.Drawing2D.LinearGradientBrush

Altre risorse

Linee, curve e forme