在WPF中构建CAD程序

本文关键字:CAD 程序 构建 WPF | 更新日期: 2023-09-27 17:51:08

-在WPF中构建CAD程序:

我想构建一个CAD程序,该程序一次将有10000个LINE对象。我使用LineGeomery类来绘制添加到Canvas的线。我已经实现了ZoomPan,到目前为止性能很好。

只有一个主要的遗憾:

行的Thickness在缩放时缩放。我试图将BindThickness属性设置为一个因素,以保持它们不变,这是有效的,但在缩放时显着降低了性能。在MouseWheel上清除和绘制具有新厚度的新线也是不可能的。这也会降低性能,并且在当前方法中不实用。

-现在我有什么解决方案?

  • 坚持当前方法,忽略厚度的变化
  • 在GDI+
  • 中完成全部工作
  • WPF中的主机GDI
  • 使用WPF Viewport3D (LineThickness是不变的吗?)

-其他解决方案?

你还会走哪条路?我是WPF和编程的新手,我渴望学习。

更新:

我现在就是这么做的。我用Pen和画笔在视觉层上画了3000条线。然后在MouseWheel事件中,我用更新的厚度重新绘制所有的线。另外,我不向用户显示其余的行,直到他缩放,所以我只在每个MouseWheel事件中创建了10000行中的3000行。

在WPF中构建CAD程序

不使用Line对象,您可以使用Path对象来绘制线条。这里有一个答案https://stackoverflow.com/a/15323221/1305119

除了在WPF中托管winforms元素之外,我还会在缩放功能上实现部分渲染,例如,当你放大所有不可见的东西时,也不应该计算!