我正在制作一个基本的思维导图程序但是我没有很多使用WPF绘图的经验。我希望能够在其上绘制带有文本的矩形,并且我希望能够单击矩形来更改文本。 截至目前,我有:
private void DrawSubject(int curve, double X, double Y, Brush clr)
{
Rectangle rect = new Rectangle();
rect.Width = 62;
rect.Height = 38;
rect.Fill = clr;
rect.Stroke = line;
rect.RadiusX = rect.RadiusY = curve;
Canvas.SetLeft(rect, X);
Canvas.SetTop(rect, Y);
mindmap.Children.Add(rect);
}
SolidColorBrush line = new SolidColorBrush(Color.FromArgb(255, 21, 26, 53));
minmap是画布的名称。我希望能够绘制很多这些呈现思维导图分支的矩形。但是,当我在随机位置上绘制10,000个这些时,诊断工具中的进程内存在绘制完所有内容后上升了100 MB。我这样做是为了模拟一个包含10,000个分支的思维导图。所以我想知道是否有办法减少这些矩形的已用内存? 或者使用DrawingVisual和grid.click事件更好,它通过将矩形的坐标放在List中来检查点击的位置是否与矩形的位置匹配?