Как включить сглаживание для полилинии, нарисованной с помощью WPF StreamGeometry? - PullRequest
4 голосов
/ 20 июня 2010

Мне нужно нарисовать ломаную линию в DrawingVisual. Я использую StreamGeometry по соображениям производительности. Проблема в том, что я не могу понять, как включить сглаживание. Я не могу найти какой-либо метод или свойство в StreamGeometry или DrawingContext для управления сглаживанием.

Код ниже написан на IronPython, но это не должно иметь значения:

geometry = StreamGeometry()
context = geometry.Open()
context.BeginFigure(Point(10, 10), False, False)
context.LineTo(Point(100, 100), True, False)
context.LineTo(Point(200, 300), True, False)
context.Close()

dv = DrawingVisual()
dc = dv.RenderOpen()
dc.DrawGeometry(None, Pen(Brushes.Blue, 1), geometry)
dc.Close()

1 Ответ

2 голосов
/ 14 апреля 2012

Чтобы отключить сглаживание, вы можете использовать класс RenderOptons , статический метод SetEdgeMode позволяет определить, как будут отображаться края нетекстовых примитивов рисования вашего объекта DependencyObject.

RenderOptions.SetEdgeMode(MyDependencyObject, EdgeMode.Aliased)

Надеюсь, эта помощь.

...