直接绘制到面板

本文关键字:绘制 | 更新日期: 2023-09-27 18:21:22

几年前,我用Java编写了一个图形应用程序。它将边和顶点存储在一个四叉树中,每当我需要绘制它们时,我都会循环浏览。

今天我需要在WPF中做一些类似的事情,但是,我注意到我必须在面板内的Children列表中添加元素才能绘制。这是低效的,因为现在我有效地存储了两个版本的数据。与使用四叉树相比,删除元素的成本也很高。

有没有更好的方法可以在不使用儿童名单的情况下实现这一点?

直接绘制到面板

在WPF中,如果有数据源,通常不会直接使用面板,而是使用一些ItemsControl,绑定其ItemsSource,将ItemsPanel设置为要使用的任何面板,并创建一个ItemTemplate来定义项目的显示方式。(Canvas结合例)

这种处理面板的方式意味着您不必手动处理Children集合,如果您的ItemsSource实现了INCC,它将保持同步。我意识到这对你的树来说可能有点困难,但也许你可以想出一些办法。