当我在 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 中的画笔工具一样工作。

但是,它消耗了太多内存。所以过了一会儿,程序变慢了。有没有办法解决这个问题?在画布上添加相同的椭圆对象时,我不能重复使用它吗?

当我在 WPF 的画布上添加许多子项时,有没有办法节省内存

您应该使用 DrawingVisualDrawingContext 来绘制画笔路径。 DrawingContext类似于 Windows 窗体Graphics对象。因此,在您的情况下,只需在同一DrawingContext上绘制画笔路径即可。

相关文章: