Моя задача довольно проста: нарисовать линию от точки A до точки B и установить разные цвета в точках A и B, например, белый на A и черный на B, чтобы затушить линию.
Я пыталсяДелая это, используя LinearGradientBrush:
var brush = new LinearGradientBrush(
Color.FromArgb(255, 0, 0, 0),
Color.FromArgb(255, 255, 0, 0), new Point(0, 0), new Point(1,1));
var pen = new Pen(brush, 10.0);
dc.DrawLine(pen, new Point (300, 300), new Point(300, 100));
Но это не приводит к желаемым результатам, так как GradientBrush отображается в соответствии с ограничивающей рамкой объекта.Таким образом, результаты для линии, идущей от 100/100 до 200/200, и линии, идущей в противоположном направлении, одинаковы (а это не то, что я хочу).
Как можно решить эту проблему с помощью WPF?Спасибо.
Редактировать: мне нужно использовать низкоуровневые графические функции (например, DrawLine) по соображениям производительности, потому что я рисую много линий.