void MainWindow_MouseMove(object sender, MouseEventArgs e)
{
Ellipse el = new Ellipse();
el.Fill = ellipse.Fill;
el.Width = ellipse.Width;
el.Height = ellipse.Height;
Point p = e.GetPosition(this.canvasPrint);
Canvas.SetLeft(el, p.X);
Canvas.SetTop(el, p.Y);
canvasPrint.Children.Add(el);
}
这是我制作的程序的示例代码。我在画布上添加省略号。每个椭圆的点是鼠标光标的点。当鼠标移动时,会生成并添加一个新椭圆,使其像MS Paint中的画笔工具一样工作。
然而,它消耗了太多内存。所以过了一会儿,程序变慢了。有什么方法可以解决这个问题吗?当我在画布上添加相同的椭圆对象时,我不能重复使用它吗?
答案 0 :(得分:3)
您应该使用DrawingVisual
和DrawingContext
来绘制画笔路径。 DrawingContext
类似于Windows窗体Graphics
对象。因此,在您的情况下,只需在同一DrawingContext
上绘制画笔路径即可。