DrawingVisual无法单独存在,必须放在一个容器中(需要有布局系统)呈现.我们看到每次添加一个Visual的时候,总还是难免要实现GetVisualChild和VisualChildrenCount这两个成员
public partial class MainWindow : Window
{
RectanlgeVisual rv;
public MainWindow()
{
InitializeComponent();
rv = new RectanlgeVisual();
this.AddVisualChild(rv);
}
protected override Visual GetVisualChild(int index)
{
return rv;
}
}
public class RectanlgeVisual : DrawingVisual
{
public RectanlgeVisual()
{
using (var dc = this.RenderOpen())
{
dc.DrawRectangle(Brushes.Red, null, new Rect(0, 0, 100, 100));
}
}
}