2010-06-20 3 views
3

J'ai besoin de dessiner une polyligne dans un DrawingVisual. J'utilise StreamGeometry pour des raisons de performances. Le problème que j'ai est que je ne peux pas comprendre comment activer l'anti-aliasing. Je ne trouve aucune méthode ou propriété sur StreamGeometry ou sur DrawingContext pour le contrôle anti-aliasing.Comment activer l'anti-aliasing pour une polyligne dessinée avec WPF StreamGeometry?

Le code ci-dessous est en IronPython, mais il importe peu:

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() 

Répondre

2

Pour désactiver l'anti-aliasing, vous pouvez utiliser RenderOptons classe, avec la méthode statique SetEdgeMode il est possible de déterminer comment les bords non -les primitives de dessin de votre DependencyObject sont rendues.

RenderOptions.SetEdgeMode(MyDependencyObject, EdgeMode.Aliased) 

Espérons cette aide.

Questions connexes