J'ai envie de me lancer dans la création de contrôles redessinés sur mon application windows. Je voulais commencer par un effet dégradé sur différents contrôles (Label, Textbox, Button).

J'ai un peu chercher sur msdn et je pense que c'est dans la classe System.Drawing :

  • Drawing2D.LinearGradientBrush
  • System.Drawing.SolidBrush


J'ai commencé ce bout de code et j'y ai passé la nuit
Les couleurs sont moches mais ça fonctionne au final


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
        ' Création de l'image en haute qualité avec l'anticrénelage maximal (H=13 L=120)
        Dim hauteur_label As Integer = 20
        Dim largeur_label As Integer = 120
        Dim image_label As New Bitmap(largeur_label, hauteur_label)
        Dim creation_image As Graphics = Graphics.FromImage(image_label)
        creation_image.CompositingQuality = CompositingQuality.HighQuality
        creation_image.SmoothingMode = SmoothingMode.AntiAlias
 
        ' Création du dégradé de couleurs
        Dim blend_couleur_degrade As System.Drawing.Drawing2D.ColorBlend = New ColorBlend(2)
        blend_couleur_degrade.Colors = New Color(2) {Color.LightBlue, Color.LightGreen, Color.White}
        ' Les valeurs sont situées entre 0 et 1 et représente le pourcentage de la distance du dégradé
        blend_couleur_degrade.Positions = New Single(2) {0, 0.6F, 1}
 
        Dim color1 As System.Drawing.Color = Color.Beige
        Dim color2 As System.Drawing.Color = Color.Aqua
        Dim degrade As New System.Drawing.Drawing2D.LinearGradientBrush(New Point(400, 50), New Point(520, 63), color1, color2)
        degrade.InterpolationColors = blend_couleur_degrade
 
        ' Remplissage de l'image
        creation_image.FillEllipse(degrade, New Rectangle(0, 0, largeur_label, hauteur_label))
 
        ' Ajout de l'image au label
        patient_telephone.Image = image_label
Mais je suis trop fatigué pour continuer et transformer ça en fonction. Quelqu'un peut-il m'aider ?