Pennelli e forme con riempimento in GDI+Brushes and Filled Shapes in GDI+

Una forma chiusa, ad esempio un rettangolo o un'ellisse, è costituito da una struttura e una parte interna.A closed shape, such as a rectangle or an ellipse, consists of an outline and an interior. La struttura viene disegnata con una penna e l'interno viene riempito con un pennello.The outline is drawn with a pen and the interior is filled with a brush. GDI+GDI+ fornisce diverse classi di pennelli per il riempimento di forme chiuse: SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush, e PathGradientBrush. provides several brush classes for filling the interiors of closed shapes: SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush, and PathGradientBrush. Tutte queste classi di ereditare il Brush classe.All of these classes inherit from the Brush class. Nella figura seguente viene illustrato un rettangolo riempito con un pennello tinta unita e un'ellisse riempita con un pennello di tratteggio.The following illustration shows a rectangle filled with a solid brush and an ellipse filled with a hatch brush.

Forme pieneFilled Shapes

Pennelli tinta uniteSolid Brushes

Per riempire una forma chiusa, sono necessari un'istanza di Graphics classe e un Brush.To fill a closed shape, you need an instance of the Graphics class and a Brush. L'istanza del Graphics classe fornisce i metodi, ad esempio FillRectangle e FillEllipsee Brush archivia gli attributi del riempimento, ad esempio colore e il motivo.The instance of the Graphics class provides methods, such as FillRectangle and FillEllipse, and the Brush stores attributes of the fill, such as color and pattern. Il Brush viene passato come uno degli argomenti al metodo di riempimento.The Brush is passed as one of the arguments to the fill method. Esempio di codice seguente viene illustrato come compilare un'ellisse con un colore rosso.The following code example shows how to fill an ellipse with a solid red color.

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

Nota

Nell'esempio precedente, il pennello è di tipo SolidBrush, che eredita da Brush.In the preceding example, the brush is of type SolidBrush, which inherits from Brush.

Pennelli per il tratteggioHatch Brushes

Quando si riempie una forma con un pennello tratteggiato, specificare un colore di primo piano, un colore di sfondo e uno stile di tratteggio.When you fill a shape with a hatch brush, you specify a foreground color, a background color, and a hatch style. Il colore primo piano è il colore del tratteggio.The foreground color is the color of the hatching.

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

GDI+GDI+ sono disponibili più di 50 stili di tratteggio. i tre stili mostrati nella figura seguente vengono Horizontal, ForwardDiagonal, e Cross. provides more than 50 hatch styles; the three styles shown in the following illustration are Horizontal, ForwardDiagonal, and Cross.

Forme pieneFilled Shapes

Pennelli della strutturaTexture Brushes

Con un pennello di trama, è possibile riempire una forma con un modello archiviato in una bitmap.With a texture brush, you can fill a shape with a pattern stored in a bitmap. Ad esempio, si supponga che l'immagine seguente è memorizzata in un file di disco denominato MyTexture.bmp.For example, suppose the following picture is stored in a disk file named MyTexture.bmp.

Riempito formaFilled Shape

Esempio di codice seguente viene illustrato come compilare un'ellisse ripetendo l'immagine memorizzata in MyTexture.bmp.The following code example shows how to fill an ellipse by repeating the picture stored in MyTexture.bmp.

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

Nella figura seguente mostra l'ellisse piena.The following illustration shows the filled ellipse.

Riempito formaFilled Shape

Pennelli per sfumatureGradient Brushes

GDI+GDI+ sono disponibili due tipi di pennelli per sfumature: lineare e il percorso. provides two kinds of gradient brushes: linear and path. È possibile utilizzare un pennello sfumato lineare per riempire una forma con colore che cambia gradualmente mentre si sposta lungo la forma orizzontalmente, verticalmente o in diagonale.You can use a linear gradient brush to fill a shape with color that changes gradually as you move across the shape horizontally, vertically, or diagonally. Esempio di codice seguente viene illustrato come compilare un'ellisse con un pennello sfumato orizzontale che passa da blu a verde si sposta dal bordo sinistro dell'ellisse al bordo destro.The following code example shows how to fill an ellipse with a horizontal gradient brush that changes from blue to green as you move from the left edge of the ellipse to the right edge.

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

Nella figura seguente mostra l'ellisse piena.The following illustration shows the filled ellipse.

Riempito formaFilled Shape

Pennello sfumatura percorso può essere configurato per cambiare colore quando si sposta dal centro della forma verso il bordo.A path gradient brush can be configured to change color as you move from the center of a shape toward the edge.

Riempito formaFilled Shape

Pennelli per sfumature di percorso sono molto flessibile.Path gradient brushes are quite flexible. Il pennello sfumato usato per riempire il triangolo le seguenti modifiche di illustrazione gradualmente dal colore rosso del centro per ognuno dei tre colori diversi per i vertici.The gradient brush used to fill the triangle in the following illustration changes gradually from red at the center to each of three different colors at the vertices.

Riempito formaFilled Shape

Vedere ancheSee Also

System.Drawing.SolidBrush
System.Drawing.Drawing2D.HatchBrush
System.Drawing.TextureBrush
System.Drawing.Drawing2D.LinearGradientBrush
Linee, curve e formeLines, Curves, and Shapes
Procedura: Disegnare un rettangolo con riempimento in un Windows FormHow to: Draw a Filled Rectangle on a Windows Form
Procedura: Disegnare un'ellisse con riempimento in un Windows FormHow to: Draw a Filled Ellipse on a Windows Form