直接绘制到面板
本文关键字:绘制 | 更新日期: 2023-09-27 18:21:22
几年前,我用Java编写了一个图形应用程序。它将边和顶点存储在一个四叉树中,每当我需要绘制它们时,我都会循环浏览。
今天我需要在WPF中做一些类似的事情,但是,我注意到我必须在面板内的Children列表中添加元素才能绘制。这是低效的,因为现在我有效地存储了两个版本的数据。与使用四叉树相比,删除元素的成本也很高。
有没有更好的方法可以在不使用儿童名单的情况下实现这一点?
在WPF中,如果有数据源,通常不会直接使用面板,而是使用一些ItemsControl
,绑定其ItemsSource
,将ItemsPanel
设置为要使用的任何面板,并创建一个ItemTemplate
来定义项目的显示方式。(Canvas
结合例)
这种处理面板的方式意味着您不必手动处理Children
集合,如果您的ItemsSource
实现了INCC
,它将保持同步。我意识到这对你的树来说可能有点困难,但也许你可以想出一些办法。