在WPF中构建CAD程序
本文关键字:CAD 程序 构建 WPF | 更新日期: 2023-09-27 17:51:08
-在WPF中构建CAD程序:
我想构建一个CAD程序,该程序一次将有10000个LINE
对象。我使用LineGeomery
类来绘制添加到Canvas
的线。我已经实现了Zoom和Pan,到目前为止性能很好。
只有一个主要的遗憾:
行的Thickness
在缩放时缩放。我试图将Bind
的Thickness
属性设置为一个因素,以保持它们不变,这是有效的,但在缩放时显着降低了性能。在MouseWheel
上清除和绘制具有新厚度的新线也是不可能的。这也会降低性能,并且在当前方法中不实用。
-现在我有什么解决方案?
- 坚持当前方法,忽略厚度的变化
- 在GDI+ 中完成全部工作
- WPF中的主机GDI
- 使用WPF Viewport3D (LineThickness是不变的吗?)
-其他解决方案?
你还会走哪条路?我是WPF和编程的新手,我渴望学习。
更新:
我现在就是这么做的。我用Pen
和画笔在视觉层上画了3000条线。然后在MouseWheel事件中,我用更新的厚度重新绘制所有的线。另外,我不向用户显示其余的行,直到他缩放,所以我只在每个MouseWheel事件中创建了10000行中的3000行。
不使用Line对象,您可以使用Path对象来绘制线条。这里有一个答案https://stackoverflow.com/a/15323221/1305119
除了在WPF中托管winforms元素之外,我还会在缩放功能上实现部分渲染,例如,当你放大所有不可见的东西时,也不应该计算!