[英]Draw Polyline in DrawingContext using c#
我想在Visual Layer
繪制一條Polyline
。 這是我用來繪制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);
}
我認為使用DrawGeometry
比使用DrawLine
更好。
例:
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);
我認為沒有更好的方法了,除了不調用myPen.Freeze()
而是將其創建為const
。 我不知道這是否真的更有效,我只是認為將來可以更清楚地清除代碼。 我也不會(個人使用)使用var
關鍵字,因為在調用drawingVisual.RenderOpen()
時創建的類型將不太模糊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.