(1)给项目添加system.windows.forms.integration引用
(2).xaml页面
<WindowsFormsHost Name="wfhToolBarCtrl" Grid.Row="0"/>
<WindowsFormsHost Name="wfhMapCtrl" Grid.Row="1"/>
(3).xaml.cs页面
private IMapControl2 _MapCtrl;//地图控件
private ITOCControl _TocCtrl;//图层树(没用到)
private IToolbarControl2 _ToolBar;//工具条
/// <summary>
/// 注册地图控件、工具条初始化
/// </summary>
private void InitMapControl()
{
try
{
if (_MapCtrl != null)
{
return;
}
AxMapControl axmapctrl = new AxMapControl();
//AxTOCControl axtocctrl = new AxTOCControl();
AxToolbarControl axToolbarControl = new AxToolbarControl();
axmapctrl.OcxState = null;
axToolbarControl.OcxState = null;
axmapctrl.BeginInit();
wfhMapCtrl.Child = axmapctrl;
wfhToolBarCtrl.Child = axToolbarControl;
_MapCtrl = axmapctrl.Object as IMapControl2;
_ToolBar = axToolbarControl.Object as IToolbarControl2;
_ToolBar.SetBuddyControl(_MapCtrl);
//添加工具项
//ESRI.ArcGIS.SystemUI.ICommand addcommand = new ControlsAddDataCommandClass();
//_ToolBar.AddItem(addcommand, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
ESRI.ArcGIS.SystemUI.ICommand command = new ControlsMapFullExtentCommandClass();
_ToolBar.AddItem(command, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
ESRI.ArcGIS.SystemUI.ICommand command2 = new ControlsMapPanToolClass();
_ToolBar.AddItem(command2, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
ESRI.ArcGIS.SystemUI.ICommand command3 = new ControlsMapZoomOutToolClass();
_ToolBar.AddItem(command3, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
ESRI.ArcGIS.SystemUI.ICommand command4 = new ControlsMapZoomInToolClass();
_ToolBar.AddItem(command4, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
ESRI.ArcGIS.SystemUI.ICommand command5 = new ESRI.ArcGIS.Controls.ControlsMapIdentifyToolClass();
_ToolBar.AddItem(command5, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
//_TocCtrl = axToolbarControl.Object as ITOCControl;
//_TocCtrl.SetBuddyControl(_MapCtrl);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
效果图: