Partager via


Pinceaux et remplissage de formes dans GDI+

Une forme fermée (comme un rectangle ou une ellipse) comprend un contour et un intérieur. Le contour est dessiné avec un stylet et l'intérieur est rempli avec un pinceau. GDI+ fournit plusieurs classes de pinceaux pour le remplissage des intérieurs des formes fermées : SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush et PathGradientBrush. Toutes ces classes héritent de la classe Brush. L'illustration suivante représente un rectangle rempli à l'aide d'un pinceau uni et une ellipse remplie à l'aide d'un pinceau à hachures.

Formes pleines

Pinceaux unis

Pour remplir une forme fermée, vous avez besoin d'une instance de la classe Graphics et d'un objet Brush. L'instance de la classe Graphics fournit des méthodes, telles que FillRectangle et FillEllipse, et l'objet Brush stocke des attributs de remplissage, par exemple la couleur et le motif. Brush est passé en tant qu'argument à la méthode de remplissage. L'exemple de code suivant montre comment remplir une ellipse avec une couleur rouge unie.

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

Notes

Dans l'exemple précédent, le pinceau est du type SolidBrush qui hérite de Brush.

Pinceaux à hachures

Lorsque vous remplissez une forme à l'aide d'un pinceau à hachure, vous spécifiez une couleur de premier plan, une couleur d'arrière-plan et un style de hachures. La couleur de premier plan est celle des hachures.

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

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

GDI+ fournit plus de 50 styles de hachurage. Les trois styles présentés dans l'illustration suivante sont Horizontal, ForwardDiagonal et Cross.

Formes pleines

Pinceaux à texture

Un pinceau à texture vous permet de remplir une forme avec un motif stocké dans une bitmap. Par exemple, supposez que l'image suivante soit stockée dans un fichier disque MyTexture.bmp.

Forme pleine

L'exemple de code suivant montre comment remplir une ellipse en répétant l'image stockée dans 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);

L'illustration suivante montre l'ellipse remplie.

Forme pleine

Pinceaux à dégradé

GDI+ fournit deux genres de pinceaux de dégradé : linéaire et de tracé. Utilisez un pinceau à dégradé linéaire pour remplir une forme avec une couleur qui change graduellement à mesure que vous déplacez le pinceau (horizontalement, verticalement ou en diagonale) sur la forme. L'exemple de code suivant montre comment remplir une ellipse à l'aide d'un pinceau à dégradé horizontal qui passe du bleu au vert en passant de l'extrémité gauche à l'extrémité droite de l'ellipse.

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

L'illustration suivante montre l'ellipse remplie.

Forme pleine

Un pinceau à dégradé de tracé peut être configuré pour changer de couleur en passant du centre d'une forme à son contour.

Forme pleine

Les pinceaux à dégradé de tracé offrent une grande souplesse d'utilisation. Dans l'illustration suivante, le pinceau à dégradé utilisé pour remplir le triangle passe graduellement du rouge au centre à trois couleurs différentes en allant vers les sommets.

Forme pleine

Voir aussi

Tâches

Comment : dessiner un rectangle rempli dans un Windows Form

Comment : dessiner une ellipse remplie dans un Windows Form

Référence

System.Drawing.SolidBrush

System.Drawing.Drawing2D.HatchBrush

System.Drawing.TextureBrush

System.Drawing.Drawing2D.LinearGradientBrush

Autres ressources

Lignes, courbes et formes