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

Мне нужно нарисовать полилинию в 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()

person Meh    schedule 20.06.2010    source источник


Ответы (1)


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

RenderOptions.SetEdgeMode(MyDependencyObject, EdgeMode.Aliased)

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

person gliderkite    schedule 14.04.2012