2009-02-23 16 views
6

Ist es möglich, eine Linie mit einer abgestuften Farbe zu zeichnen?Zeichnen einer Linie mit einer Verlaufsfarbe

Ich möchte in der Lage sein, eine gerade oder eine gekrümmte Linie (wenn möglich) zu zeichnen, wo an einem Ende der Linie Blau ist und das andere Ende Rot ist.

Weitere Es kann erforderlich sein, mehr als einen Farbverlauf pro Zeile zu verwenden, z. B. die Farbe von Blau -> Grün -> Rot. Ich denke, dass dies nur aus mehreren zusammengezogenen Gradientenlinien bestehen könnte.

Antwort

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

Sie rufen entsorgen sollte ... –

+2

nein, er muss in diesem Fall nicht. Die Dispose() -Methode wird nach der OnPaint-Methode automatisch aufgerufen. –

+0

Er sollte, auf die Farbe Pen und Brush. Besser noch, halte sie als Mitglieder lebendig und erstelle keine neuen auf jeder Farbe. – configurator

3

Sie müssen System.Drawing.Drawing2D.LinearGradientBrush verwenden statt System.Drawing.SolidBrush

Beispiel:

e.Graphics.DrawLine(new Pen(new System.Drawing.Drawing2D.LinearGradientBrush(... 
Verwandte Themen