Рисование линии цветом градиента - PullRequest
6 голосов
/ 23 февраля 2009

Можно ли нарисовать линию, используя градуированный цвет?

Я хочу иметь возможность нарисовать прямую или изогнутую линию (если возможно), где на одном конце линии синий, а на другом конце красный.

Далее. Возможно, потребуется иметь более одного градиента на линию, например, цвет будет синий -> зеленый -> красный. Я думаю, что это может состоять из нескольких градиентных линий, нарисованных вместе.

Ответы [ 2 ]

9 голосов
/ 23 февраля 2009
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));
        }
    }
}
3 голосов
/ 23 февраля 2009

вам нужно будет использовать System.Drawing.Drawing2D.LinearGradientBrush вместо System.Drawing.SolidBrush

пример:

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