2009-02-23 18 views
6

目盛り付きの色を使用して線を描くことは可能ですか?グラデーションカラーで線を描く

私は、線の一端が青で、もう一端が赤である直線または曲線(可能であれば)を描きたいと思います。

さらに、1行に1つ以上のグラデーションが必要な場合があります。たとえば、「ブルー」→「グリーン」→「レッド」の色です。私は、これが複数の勾配線をまとめて描かれていると考えています。

答えて

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

... –

+2

いいえ、彼はこの場合には必要ありません。 Dispose()メソッドは、OnPaintメソッドの後に自動的に呼び出されます。 –

+0

彼はペイントペンとブラシにすべきです。もっと良いことに、それらをメンバーとして生かしておき、それぞれのペイントに新しいものを作成しないでください。 – configurator

3

あなたの代わりにSystem.Drawing.SolidBrush

例のSystem.Drawing.Drawing2D.LinearGradientBrushを使用する必要があります:あなたはdisposeの呼び出しされなければならない

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