首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在WPF中绘制很多可点击的矩形?

如何在WPF中绘制很多可点击的矩形?
EN

Stack Overflow用户
提问于 2018-01-09 00:15:17
回答 1查看 245关注 0票数 0

我正在开发一个基本的思维导图程序,但我没有太多使用WPF绘图的经验。我希望能够绘制文本上的矩形,我希望能够点击矩形来更改文本的例子。到目前为止,我有:

代码语言:javascript
复制
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个这样的对象时,在完成所有这些对象的绘制后,诊断工具中的进程内存增加了100MB。我这样做是为了模拟一个有10,000个分支的思维导图。所以我想知道是否有一种方法可以减少这些矩形的内存使用量?或者使用DrawingVisual和grid.click事件更好,该事件通过将矩形的坐标放在列表中来检查单击的位置是否与矩形的位置匹配?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-09 00:42:23

我会尝试你所描述的DrawingVisual方法,如果它在性能上被证明是昂贵的(我不知道DrawingVisual是如何工作的),你可以考虑将OpenGLDirectX嵌入到你的应用程序中,并通过它来呈现它们。

但是光线追踪绘制的视觉效果,而不是为每个视觉效果创建一个控件,这绝对是你的缩放方式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48154074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档