111,098
社区成员




class LightDrawing : FrameworkElement
{
// Create a collection of child visual objects.
private VisualCollection _children;
public VisualCollection Children { get { return this._children; } }
//DrawingVisual _dv = new DrawingVisual();
//public DrawingVisual Drawing { get { return this._dv; } }
public LightDrawing()
{
_children = new VisualCollection(this);
//_children.Add(_dv);
}
protected override int VisualChildrenCount
{
get { return _children.Count; }
}
// Provide a required override for the GetVisualChild method.
protected override Visual GetVisualChild(int index)
{
if (index < 0 || index >= _children.Count)
{
throw new ArgumentOutOfRangeException();
}
return _children[index];
}
}
然后
LightDrawing draw = new LightDrawing();
DrawingVisual visual = new DrawingVisual();
using (var dc = visual.RenderOpen())
{
dc.DrawLine(new Pen(Brushes.Black,1),new Point(50,50),new Point(100,0));
}
draw.Children.Add(visual);
this.Container.Children.Add(draw);//这个container就是你要放在页面上的容器
还有就是 dc.DrawLine(new Pen(Brushes.Black,1),new Point(50,50),new Point(100,0));
这句可以换成画其他任意path的 自己查api就行了