第1个回答 推荐于2017-09-14
public class DrawingHost : FrameworkElement
{
private DrawingVisual _drawingVisual = new DrawingVisual();
public DrawingHost()
{
// 必须加入到VisualTree中才能显示
this.AddVisualChild(_drawingVisual);
this.Draw();
}
// 重载自己的VisualTree的孩子的个数,由于只有一个DrawingVisual,返回1
protected override int VisualChildrenCount
{
get { return 1; }
}
// 重载当WPF框架向自己要孩子的时候,返回返回DrawingVisual
protected override Visual GetVisualChild(int index)
{
if (index == 0)
return _drawingVisual;
throw new IndexOutOfRangeException();
}
// 绘制代码
private void Draw()
{
var dc = _drawingVisual.RenderOpen();
dc.DrawEllipse(Brushes.Blue, null, new Point(50, 50), 50, 50);
dc.Close();
}
}本回答被提问者采纳