由 ArcGIS 引擎 SDK 提供支持的 .NET 程序报告找不到类型或命名空间 "AxMapControl "

A .NET program powered by ArcGIS engine SDK reports that cannot find type or namespace "AxMapControl "

我有一个由 ArcGIS 引擎 SDK 版本 10.2 提供支持的 .NET 程序,旨在检查空间数据。 IDE 是 Microsoft Visual Studio 2012。我已经添加了所有以 ESRI.ARCGIS 开头的引用以及命名空间,但它仍然不能 run.I 认为命名空间 ESRI.ARCGIS.Controls 应该包含 class AxMapControl 但它没有't.What 我可以做些什么来解决它吗? 部分代码如下所示。

using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.DataSourcesRaster;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.SystemUI;
using Geoway.ADF.GIS.OpenDataDialog;
using Geoway.ADF.MIS.Core.Public.interfaces;
using Geoway.ADF.MIS.Core.Public.util;
using Geoway.ADF.MIS.Utility.Core;
using Geoway.ADF.MIS.Utility.Log;
using System;
using System.Collections;
using System.Data;
using System.Globalization;
using System.IO;
using System.Windows.Forms;

namespace Geoway.ADF.GIS.CheckerUI
{
public class MapManager
{
    private AxMapControl m_MapControl;

    private ICommand pControlsMapFullExtentCommand;

    private ICommand pControlsMapPanTool;

    private ICommand pControlsMapZoomInTool;

    private ICommand pControlsMapZoomOutTool;

    private ICommand pControlsMapPreViewCommand;

    private ICommand pControlsMapNextViewCommand;

    public ISimpleCallBack simAxisCallBack;

    public ISimpleCallBack simSelCallBack;

    private NumberFormatInfo nfi4 = ConvertUtil.GetNumFormatInfo(4);

    private ArrayList m_lstFeatureClass;

    private ArrayList m_lstRasterDataset;

    private Form parentForm;

    public AxMapControl MapControl
    {
        get
        {
            if (this.m_MapControl == null)
            {
                this.m_MapControl = new AxMapControl();
            }
            return this.m_MapControl;
        }
        set
        {
            this.m_MapControl = value;
        }
    }

您需要参考包含AxMapControl的ESRI.ArcGIS.AxControls。然后,您可以使用 Windows Forms 控件 放置在 WPF window 或页面上,方法是使用 WindowsFormsHost 控件,它提供了一个容器,其中单个 Windows 可以承载表单控件。