–
Windows 7 旗舰版
ArcGIS 10.1
Visual Studio 2010
问题描述
在WPF中动态创建AxMapControl,有时候程序启动的时候会出现InvalidAactiveXStateException的异常,只是偶尔出现这个异常~
问题分析
通过在程序中进行断点调试,发现在调用控件的属性的时候会出现这个问题,即AxMapControl.Map会出现这个异常,我的分析是由于控件没有真正的初始化完全,所以调用属性就出现了问题;
解决方案
使用 WindowsFormsHost 元素可将 Windows Forms控件放置到 WPF 元素或页面中;由于控件是动态添加的,所以代码如下:
AxMapControl mapControl=new AxMapControl();
((System.ComponentModel.ISupportInitialize)(this.mapControl)).BeginInit();
mapHost.Child=mapControl;
((System.ComponentModel.ISupportInitialize)(this.mapControl)).EndInit();