原文 http://www.gisall.com/html/47/122747-4038.html

WPF(Windows Presentation Foundation)是美国微软公司推出.NET Framework 3.0的组成部分之一,它是一套基于XML、.NET Framework、矢量绘图(vector graphic)技术的展示层(presentation layer)开发框架,微软视其为下一代用户界面(user interface)技术,将广泛被用于下一代的Windows平台(Windows Vista)的界面开发。

WPF使用一种新的XAML(eXtensible Application Markup Language)语言来开发界面,这将把界面开发以及后台逻辑很好的分开,降低了耦合度,使用户界面设计师与程序开发者能更好的合作,降低维护和更新的成本。

而ArcGIS Engine开发包只提供了WinForm控件,如Map Control、Toc Control、Toolbar Control等。那么假如我们要在WPF程序中使用ArcGIS Engine,那应该如何调用呢?

ArcGIS Engine为我们提供了两中途径:

<!--[if !supportLists]-->1、 <!--[endif]-->使用WindowsFormsHost管理ArcGIS Engine WinForm控件,并进行互操作。

<!--[if !supportLists]-->2、 <!--[endif]-->使用WindowsFormHost加载WinForm窗体,这样在WinForm中就能像平时一样加载Engine的控件了。

第一种方法需要使用代码了加载值Engine控件,示例代码如下:

首先在主程序的Xaml文件里添加WindowsFormsHost对象:

<my:WindowsFormsHost Name="mapHost" Margin="174,30,0,22" />

然后在主程序的构造函数里添加代码加载Engine控件

mapControl = new AxMapControl ();

mapHost.Child = mapControl;

这样就可以把Engine的WinForm控件加载到WPF程序中了。

这种方式的缺点就是,无法通过Visual Studio的用户设计界面来设置控件的属性。

第二种方法的思路如下:

在WPF程序中添加一个WinForm窗体对象,里面可以自由地使用Engine控件。

然后在WPF主程序中,通过某项事件,如Application的StartUp事件,实例化该窗体,并调用它的show方法显示。

当使用这两种方法来调用Engine控件时,都不要忘记,ArcGIS 10在调用所有ArcObject对象前,都需要进行运行时绑定,示例代码如下:

ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);

最新文章

  1. android raw和assets的区别
  2. SQL Server 2008 R2数据库镜像部署
  3. Atitit 图像处理 灰度图片 灰度化的原理与实现
  4. python读取配置文件
  5. 搜索引擎关键词劫持之.net篇
  6. OI刷题记录
  7. 针对ajax执行后swiper特效无法执行解决方案
  8. Datatable的查找和排序(Datatable.Select)
  9. linux 2.6.21版本的内核合法的MAC地址
  10. Spring、SpringMVC、Mybaitis框架配置
  11. 幂运算(codevs 2541)
  12. maven的安装与使用
  13. JSON日期格式处理
  14. html5的程序接口与元素变化
  15. BZOJ 1053 反素数ant
  16. SK-Learn 全家福
  17. c++代码的编译
  18. ●51NOD 1705 七星剑
  19. QLabel播放gif
  20. SQLServer之ISO游标使用

热门文章

  1. hadoop 2.3 集群总结
  2. Palindrome Subarrays
  3. Majority Element 解答
  4. ./scripts/feeds update -a OpenWrt大招系列
  5. Monkey Tradition(中国剩余定理)
  6. jxl读写excel的方法
  7. ASP.NET母版与内容页相对路径的问题
  8. 基于canvas图像处理的图片展示demo
  9. mysql事件调度器
  10. 0122——UITabBarController