AutoCAD Blockview .net在wpf项目中的问题
之前使用Blockview是遇到平移的问题,
这几天在学习使用CommunityToolkit.MVVM框架来创建用户界面,
当创建GsPreviewCtrl控件时会遇到错误,
导致整个窗体不能显示,
错误信息如下:
************** 异常文本 ************** System.InvalidProgramException: 公共语言运行时检测到无效的程序。 在 Autodesk.AutoCAD.Runtime.DisposableWrapper.op_Inequality(DisposableWrapper a, DisposableWrapper b) 在 BlockView.NET.GsPreviewCtrl.InternalOnSizeChanged() 位置 D:\MYZW\repos\SlopeDrawingAssistant\DrawingAssistant\GsPreviewCtrl.cs:行号 590 在 BlockView.NET.GsPreviewCtrl.OnSizeChanged(EventArgs e) 位置 D:\MYZW\repos\SlopeDrawingAssistant\DrawingAssistant\GsPreviewCtrl.cs:行号 583 在 System.Windows.Forms.Control.UpdateBounds(Int32 x, Int32 y, Int32 width, Int32 height, Int32 clientWidth, Int32 clientHeight)
对应的代码如下:
if (mpDevice != null) { mpDevice.OnSize(this.Size); }
针对错误信息来分析,
这里的≠符号应该是调用了Autodesk.AutoCAD.Runtime.DisposableWrapper.op_Inequality()方法,
这个方法在这里应该是无法运行,
于是修改代码如下:
if (!(mpDevice is null)) { mpDevice.OnSize(this.Size); }
修改后窗体正常显示在设计窗口。