当我在 WPF 的画布上添加许多子项时,有没有办法节省内存
本文关键字:有没有 内存 节省 许多 WPF 添加 | 更新日期: 2023-09-27 18:21:04
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 中的画笔工具一样工作。
但是,它消耗了太多内存。所以过了一会儿,程序变慢了。有没有办法解决这个问题?在画布上添加相同的椭圆对象时,我不能重复使用它吗?
您应该使用 DrawingVisual
和 DrawingContext
来绘制画笔路径。 DrawingContext
类似于 Windows 窗体Graphics
对象。因此,在您的情况下,只需在同一DrawingContext
上绘制画笔路径即可。