- 在WPF中构建CAD程序:
我想要构建一个CAD程序,每次会有10000个LINE
对象。我使用LineGeometry
类来绘制线条并将其添加到Canvas
中。我已经实现了缩放和平移功能,目前性能表现良好。
- 唯一的主要问题:
线条的Thickness
在缩放时会发生变化。我尝试将线条的Thickness
属性绑定到一个因子上以保持不变,这种方法可以解决问题,但在缩放时会严重降低性能。清除并用新的Thickness
重新绘制线条也不可行,这样做同样会降低性能并且在当前方法下不切实际。
- 现在有什么解决方案?
- 继续使用当前方法,忽略Thickness的变化
- 使用GDI+完成整个工作
- 在WPF中托管GDI
- 使用WPF Viewport3D(线条厚度是否不变?)
- 其他解决方案?
您会选择哪些其他方法?我对WPF和编程都很新,我渴望学习。
更新:
目前我的做法是:使用Pen
和Brushes在Visual Layer上绘制3000条线段。然后在MouseWheel事件中重新绘制所有线段以更新Thickness。此外,在用户缩放之前不向其显示其他的线段,因此每次MouseWheel事件只创建10000条线段中的3000条。