使用c#在DrawingContext中绘制折线

Vah*_*hid 0 c# wpf

我想Polyline在 中画一个Visual Layer。这是我用来绘制 的代码Line。我应该绘制多个Lines并将它们添加到中VisualCollection还是有更好的方法?

var drawingVisual = new DrawingVisual();
using (var dc = drawingVisual.RenderOpen())
{
    var myPen = new Pen
    {
        Thickness = thickness,
        Brush = Settings.GridColor
    };
    myPen.Freeze();
    dc.DrawLine(myPen, pt1, pt2);
}
Run Code Online (Sandbox Code Playgroud)

dev*_*xer 5

我认为你使用DrawGeometryDrawLine.

例子:

var myPen = new Pen
{
    Thickness = thickness,
    Brush = Settings.GridColor
};
myPen.Freeze();


var geometry = new StreamGeometry();
using (StreamGeometryContext ctx = geometry.Open())
{
    ctx.BeginFigure(new Point(10, 100), true /* is filled */, true /* is closed */);
    ctx.LineTo(new Point(100, 100), true /* is stroked */, false /* is smooth join */);
    ctx.LineTo(new Point(100, 50), true /* is stroked */, false /* is smooth join */);
}
geometry.Freeze();

dc.DrawGeometry(null, myPen, geometry);
Run Code Online (Sandbox Code Playgroud)