2009-02-23 12 views
6

Est-il possible de tracer une ligne en utilisant une couleur graduée? Je veux être en mesure de tracer une ligne droite ou une ligne courbe (si possible) où à une extrémité de la ligne est bleu et l'autre extrémité est rouge. En outre, il peut être nécessaire d'avoir plus d'un dégradé par ligne, par exemple la couleur allant de Bleu -> Vert -> Rouge. Je pense que cela pourrait simplement consister en plusieurs lignes de gradient rapprochées.Tracer une ligne avec une couleur dégradée

Répondre

9
protected override void OnPaint(PaintEventArgs e) 
{ 
    base.OnPaint(e); 

    Graphics graphicsObject = e.Graphics; 

    using (Brush aGradientBrush = new LinearGradientBrush(new Point(0, 0), new Point(50, 0), Color.Blue, Color.Red)) 
    { 
     using (Pen aGradientPen = new Pen(aGradientBrush)) 
     { 
      graphicsObject.DrawLine(aGradientPen, new Point(0, 10), new Point(100, 10)); 
     } 
    } 
} 
+0

Vous devriez appeler Dispose ... –

+2

non, il n'a pas besoin dans ce cas. La méthode Dispose() sera appelée automatiquement après la méthode OnPaint. –

+0

Il devrait, sur la peinture Pen and Brush. Mieux encore, gardez-les en vie en tant que membres et n'en créez pas de nouveaux sur chaque peinture. – configurator

3

vous devez utiliser System.Drawing.Drawing2D.LinearGradientBrush au lieu de System.Drawing.SolidBrush

exemple:

e.Graphics.DrawLine(new Pen(new System.Drawing.Drawing2D.LinearGradientBrush(... 
Questions connexes