如何为使用WPF StreamGeometry绘制的折线启用消除锯齿功能?

时间:2010-06-20 19:59:36

标签: wpf geometry drawing antialiasing

我需要在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 个答案:

答案 0 :(得分:2)

要禁用消除锯齿功能,可以使用RenderOptons类,使用静态方法SetEdgeMode可以确定如何呈现DependencyObject的非文本绘图基元的边缘。

RenderOptions.SetEdgeMode(MyDependencyObject, EdgeMode.Aliased)

希望得到这个帮助。