欢迎来到我的博客
Civil 3D开发与应用,欢迎加入QQ群:484124761
AutoCAD开发,欢迎加入QQ群:193522571

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);
}

修改后窗体正常显示在设计窗口。

 

posted @ 2024-11-12 09:21  david96007  阅读(31)  评论(0编辑  收藏  举报