Я нашел несколько статей в сети относительно проведения пунктирной линии в WPF. Однако они, кажется, вращаются вокруг использования класса Строки, который является UIElement в WPF. Это проходит примерно так:
Line myLine = new Line();
DoubleCollection dashes = new DoubleCollection();
dashes.Add(2);
dashes.Add(2);
myLine.StrokeDashArray = dashes;
Теперь, я в Adorner, где у меня только есть доступ к Контексту Рисунка. Там, я более или менее уменьшаюсь до примитивов Рисунка, Кистей, Перьев, геометрии и т.д. Это больше походит на это:
var pen = new Pen(new SolidColorBrush(Color.FromRgb(200, 10, 20)), 2);
drawingContext.DrawLine(pen, point1, point2);
Я застреваю, как сделать пунктирную линию на этом уровне API. Я надеюсь, что это не до, "проводят маленькие линии один за другим", а скорее что-то еще, что я не видел...
Посмотрите на свойство Pen.DashStyle . Вы можете либо использовать члены класса DashStyles , которые задают несколько предопределенных стилей тире, либо вы можете указать собственный образец тире и пробелов, создав новый экземпляр DashStyle .
var pen = new Pen(new SolidColorBrush(Color.FromRgb(200, 10, 20)), 2);
pen.DashStyle = DashStyles.Dash;
drawingContext.DrawLine(pen, point1, point2);