直接绘制到面板

时间:2012-01-26 03:39:16

标签: c# .net wpf

几年前,我用Java编写了一个图形应用程序。它将边和顶点存储在QuadTree中,每当我必须绘制它时,我会遍历它。

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

有没有更好的方法来实现这一点而无需使用儿童列表?

1 个答案:

答案 0 :(得分:0)

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

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