esriControls在AE哪个Y引用中

平时做ArcEngine开发都是基于Winform. 自从装了VS2008之后,对WPF产生了非常浓厚的兴趣. 一直想结合WPF+ArcEngine做开发. 今天刚好在网上看到一点信息,尝试了一下,结果可行. 先将尝试过程公布一下:
1.使用WindowsFormsHost 控件.
WPF提供了承载(host) Windows form 控件的设置,允许开发在WPF应用中继续使用已存在的Windows Form 控件. 那么,实现这种可能的方法就是使用WindowsFormsHost 控件.WindowsFormsHost控件 允许在 WPF 页面上承载 Windows 窗体控件的元素.为单个window form控件提供了一个承载的容器,使得window form控件可以存在于WPF窗体或页面上.若要在 WPF 元素中承载 Windows 窗体控件,必须将 Windows 窗体控件分配给
属性.有关WindowsFormsHost 控件的详细介绍,请参阅MSDN文档:
2. 创建WPF应用程序
环境: VS2008 SP1+ArcEngine
创建一个WPF应用程序命名为WPFMapViewer,至于如何创建,这里就不多累赘了.
3.添加必要的引用ESRI.ArcGIS.AxControls—包含了 AxMapControlESRI.ArcGIS.System—包含了 AoInitialiseClass类 (用于初始化 ArcGIS Engine 的许可)WindowsFormsIntegration—包含了WindowsFormsHost 控件System.Windows.FormsSystem.Drawing
4.将WindowsFormsHost 从工具箱中拖放到窗体上,并打开MapWindow.xaml,添加WindowsFormsHost 的命名空间
xmlns:i="clr-namespace:System.Windows.Forms.Iassembly=WindowsFormsIntegration"
5.为控件创建WindowsFormsHost . 由于一个WindowsFormsHost 只能承载一个window form的控件,因此我们需要为每一个我们用到的AE控件创建一个WindowsFormsHost .这里我们将会用到AxMapControl,AxToolbarControl,AxTOCControl.因此创建三个WindowsFormsHost 控件,分别命名为mapHost,toolbarHost,tocHost.
&i:WindowsFormsHost Height="32" Name="toolbarHost" VerticalAlignment="Top" /&&&&&&&& &i:WindowsFormsHost HorizontalAlignment="Left" Margin="0,29,0,25" Name="tocHost" Width="166" /&&&&&&&& &i:WindowsFormsHost Margin="167,29,0,25" Name="mapHost" /&
6.经过以上的步骤后,完整的xaml应该是这样:
MapWindow.xaml
&Window&x:Class="WPFMapViewer.MapWindow"&&&&xmlns="/winfx/2006/xaml/presentation"&&&&xmlns:x="/winfx/2006/xaml"&&&&Title="MapViewer&Hosted&in&WPF"&Height="433.29"&Width="559.944"&Loaded="Window_Loaded"&Background="Beige"&&&&MaxHeight="600"&MaxWidth="840"&&&&xmlns:i="clr-namespace:System.Windows.Forms.Iassembly=WindowsFormsIntegration"&&&&&&Grid&&&&&&&&&&&&&&&&&&i:WindowsFormsHost&Name="mapHost"&Margin="174,30,0,22"&/&&&&&&&&&&i:WindowsFormsHost&Margin="0,30,0,22"&Name="tocHost"&HorizontalAlignment="Left"&Width="173"&/&&&&&&&&&&i:WindowsFormsHost&Height="30"&Name="toolbarHost"&VerticalAlignment="Top"&/&&&&&&&&&&TextBlock&Height="23.75"&VerticalAlignment="Bottom"&Name="textBlock1"&Margin="0,0,7.056,0"&Ready&/TextBlock&&&&&&/Grid&&/Window&
7.打开App.XAML.cs 文件,在里面添加AE的许可验证代码
public&App&()&&&&&&&&{&&&&&&&&&&&&InitializeEngineLicense&();&&&&&&&&}&&&&&&&&private&void&InitializeEngineLicense&()&&&&&&&&{&&&&&&&&&&&&AoInitialize&aoi&=&new&AoInitializeClass&();&&&&&&&&&&&&//more&license&choices&could&be&included&here&&&&&&&&&&&&esriLicenseProductCode&productCode&=&esriLicenseProductCode.esriLicenseProductCodeE&&&&&&&&&&&&if&(aoi.IsProductCodeAvailable&(productCode)&==&esriLicenseStatus.esriLicenseAvailable)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&aoi.Initialize&(productCode);&&&&&&&&&&&&}&&&&&&&&}
8. 打开MapWindow.xaml.cs, 在这里编写本文的核心部分.
(1).引入命名空间
using ESRI.ArcGIS.esriSusing ESRI.ArcGIS.C
(2).声明私有变量,包含三个控件:AxMapControl,AxToolbarControl,AxTOCControl
& AxMapControl mapC&&AxToolbarControl toolbarC&&AxTOCControl tocC
(3).创建一个用于初始化创建AE控件的函数,
CreateEngineControls
///&&summary&&&&&&&&&///&创建Engine控件并将控件绑定到各自的&WindowsFormsHost&元素上&&&&&&&&///&&/summary&&&&&&&&&void&CreateEngineControls&()&&&&&&&&{&&&&&&&&&&&&//设置&Engine&控件到每个host的Child属性上&&&&&&&&&&&&&mapControl&=&new&AxMapControl&();&&&&&&&&&&&&mapHost.Child&=&mapC&&&&&&&&&&&&toolbarControl&=&new&AxToolbarControl&();&&&&&&&&&&&&toolbarHost.Child&=&toolbarC&&&&&&&&&&&&tocControl&=&new&AxTOCControl&();&&&&&&&&&&&&tocHost.Child&=&tocC&&&&&&&&}
(4).此外,还需设置一些基本的属性,比如toolbarControl或tocControl必须和mapcontrol进行绑定;添加命令按钮到toolbarControl上;挂接mapControl相关事件等等
SetControlsProperty
///&&summary&&&&&&&&&///&设置控件相关的属性&&&&&&&&///&&/summary&&&&&&&&&private&void&SetControlsProperty&()&&&&&&&&{&&&&&&&&&&&&//设置控件之间的绑定关系&&&&&&&&&&&&tocControl.SetBuddyControl&(mapControl);&&&&&&&&&&&&toolbarControl.SetBuddyControl&(mapControl);&&&&&&&&&&&&//添加命令按钮到toolbarControl&&&&&&&&&&&&toolbarControl.AddItem&("esriControls.ControlsOpenDocCommand");&&&&&&&&&&&&toolbarControl.AddItem&("esriControls.ControlsAddDataCommand");&&&&&&&&&&&&toolbarControl.AddItem&("esriControls.ControlsSaveAsDocCommand");&&&&&&&&&&&&toolbarControl.AddItem&("esriControls.ControlsMapNavigationToolbar");&&&&&&&&&&&&toolbarControl.AddItem&("esriControls.ControlsMapIdentifyTool");&&&&&&&&&&&&&&&&&&&&&&&&//设置空间属性&&&&&&&&&&&&toolbarControl.BackColor&=Color.FromArgb&(<span style="color: #5,&<span style="color: #5,&<span style="color: #0);&&&&&&&&&&&&//挂接事件&&&&&&&&&&&&mapControl.OnMouseMove&+=new&IMapControlEvents2_Ax_OnMouseMoveEventHandler(mapControl_OnMouseMove);&&&&&&&&}
(5).最后,当程序启动时,加载地图文档
void&LoadMap()&&&&&&&&{&&&&&&&&&&&&string&strMxd&=&@"e:\Untitled.mxd";&&&&&&&&&&&&if&(mapControl.CheckMxFile(strMxd))&&&&&&&&&&&&&&&&mapControl.LoadMxFile(strMxd);&&&&&&&&}
(6).这样,整个过程就完成了. 完整的代码如下:
using&Susing&System.Wusing&System.Windows.Fusing&System.Dusing&ESRI.ArcGIS.esriSusing&ESRI.ArcGIS.Cnamespace&WPFMapViewer{&&&&&&&&public&partial&class&MapWindow:&Window&&&&{&&&&&&&&AxMapControl&mapC&&&&&&&&AxToolbarControl&toolbarC&&&&&&&&AxTOCControl&tocC&&&&&&&&public&MapWindow&()&&&&&&&&{&&&&&&&&&&&&InitializeComponent&();&&&&&&&&&&&&CreateEngineControls&();&&&&&&&&}&&&&&&&&///&&summary&&&&&&&&&///&创建Engine控件并将控件绑定到各自的&WindowsFormsHost&元素上&&&&&&&&///&&/summary&&&&&&&&&void&CreateEngineControls&()&&&&&&&&{&&&&&&&&&&&&//设置&Engine&控件到每个host的Child属性上&&&&&&&&&&&&&mapControl&=&new&AxMapControl&();&&&&&&&&&&&&mapHost.Child&=&mapC&&&&&&&&&&&&toolbarControl&=&new&AxToolbarControl&();&&&&&&&&&&&&toolbarHost.Child&=&toolbarC&&&&&&&&&&&&tocControl&=&new&AxTOCControl&();&&&&&&&&&&&&tocHost.Child&=&tocC&&&&&&&&}&&&&&&&&///&&summary&&&&&&&&&///&设置控件相关的属性&&&&&&&&///&&/summary&&&&&&&&&private&void&SetControlsProperty&()&&&&&&&&{&&&&&&&&&&&&//设置控件之间的绑定关系&&&&&&&&&&&&tocControl.SetBuddyControl&(mapControl);&&&&&&&&&&&&toolbarControl.SetBuddyControl&(mapControl);&&&&&&&&&&&&//添加命令按钮到toolbarControl&&&&&&&&&&&&toolbarControl.AddItem&("esriControls.ControlsOpenDocCommand");&&&&&&&&&&&&toolbarControl.AddItem&("esriControls.ControlsAddDataCommand");&&&&&&&&&&&&toolbarControl.AddItem&("esriControls.ControlsSaveAsDocCommand");&&&&&&&&&&&&toolbarControl.AddItem&("esriControls.ControlsMapNavigationToolbar");&&&&&&&&&&&&toolbarControl.AddItem&("esriControls.ControlsMapIdentifyTool");&&&&&&&&&&&&&&&&&&&&&&&&//设置空间属性&&&&&&&&&&&&toolbarControl.BackColor&=Color.FromArgb&(<span style="color: #5,&<span style="color: #5,&<span style="color: #0);&&&&&&&&&&&&//挂接事件&&&&&&&&&&&&mapControl.OnMouseMove&+=new&IMapControlEvents2_Ax_OnMouseMoveEventHandler(mapControl_OnMouseMove);&&&&&&&&}&&&&&&&&void&LoadMap()&&&&&&&&{&&&&&&&&&&&&string&strMxd&=&@"e:\Untitled.mxd";&&&&&&&&&&&&if&(mapControl.CheckMxFile(strMxd))&&&&&&&&&&&&&&&&mapControl.LoadMxFile(strMxd);&&&&&&&&}&&&&&&&&private&void&Window_Loaded&(object&sender,&RoutedEventArgs&e)&&&&&&&&{&&&&&&&&&&&&SetControlsProperty();&&&&&&&&&&&&//加载地图&&&&&&&&&&&&LoadMap();&&&&&&&&}&&&&&&&&private&void&mapControl_OnMouseMove&(object&sender,&IMapControlEvents2_OnMouseMoveEvent&e)&&&&&&&&{&&&&&&&&&&&&textBlock1.Text&=&"&X,Y&Coordinates&on&Map:&"&+&string.Format&("{0},&{1}&&{2}",&e.mapX.ToString&("#######.##"),&e.mapY.ToString&("#######.##"),&mapControl.MapUnits.ToString&().Substring&(<span style="color: #));&&&&&&&&}&&&&}}
9. 调试,按F5.效果图如下:&
通过本试验可以得到一个启发:借助WindowsFormsHost,我们也能像WinForm一样开发我们的AE程序,同时,我们也注意到,在WPF中使用AE开发和在WinForm上没有很大的区别, 可以像在Winform下开发一样灵活.这里只是抛砖引玉, 有兴趣的可以更深入地开发一些复杂的AE功能,比方说自定义命令按钮并与地图交互等.
11. 实例下载
阅读(...) 评论()如图,在平面直角坐标系中,A是抛物线 y-1/2x2上的一个动点……解题技法及答案(2014中考舟山)_数学解题技法_漠阳资源网
最新公告:
&&没有公告
您现在的位置:&&>>&&>>&&>>&正文
如图,在平面直角坐标系中,A是抛物线&y-1/2x2上的一个动点……解题技法及答案(2014中考舟山)
&&&热&&&&&★★★
如图,在平面直角坐标系中,A是抛物线&y-1/2x2上的一个动点……解题技法及答案(2014中考舟山)
作者:佚名
文章来源:
更新时间: 8:58:44
24.如图,在平面直角坐标系中,A是抛物线上的一个动点,且点A在第一
象限内.AE⊥y轴于点E,点B坐标为(O,2),直线AB交x轴于点C,点D与点C关于y轴对称,直线DE与AB相交于点F,连结BD.设线段AE的长为m,△BED的面积为S.
(1)当m=√2时,求S的值.
中考录入:admin&&&&责任编辑:admin&
上一篇中考: 下一篇中考:
【字体: 】【】【】【】【】【】
  网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)如图,在矩形ABCD中,AB=3,BC=4,点P在BC边上运动连结DP,过点A作AE⊥DP,垂足为E,设DP=x,AE=y,则能反映y与x之间函数关系的大致图象是[]A.B.C.D.-数学试题及答案
繁体字网旗下考试题库之栏目欢迎您!
1、试题题目:如图,在矩形ABCD中,AB=3,BC=4,点P在BC边上运动连结DP,过点A..
发布人:繁体字网() 发布时间: 7:30:00
如图,在矩形ABCD中,AB=3,BC=4,点P在BC边上运动连 结DP,过点A作AE⊥DP,垂足为E,设DP=x,AE=y, 则能反映y与x之间函数关系的大致图象是[&&&& ]A.B.C.D.
&&试题来源:四川省月考题
&&试题题型:单选题
&&试题难度:中档
&&适用学段:初中
&&考察重点:反比例函数的图像
2、试题答案:该试题的参考答案和解析内容如下:
3、扩展分析:该试题重点查考的考点详细输入如下:
&&&&经过对同学们试题原文答题和答案批改分析后,可以看出该题目“如图,在矩形ABCD中,AB=3,BC=4,点P在BC边上运动连结DP,过点A..”的主要目的是检查您对于考点“初中反比例函数的图像”相关知识的理解。有关该知识点的概要说明可查看:“初中反比例函数的图像”。
4、其他试题:看看身边同学们查询过的数学试题:
1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20、21、22、23、24、25、26、27、28、29、30、31、32、33、34、35、36、37、38、39、40、41、42、43、44、45、46、47、48、49、50、51、52、教师讲解错误
错误详细描述:
如图所示,在矩形ABCD中,AB=3,BC=4,点P在BC边上运动,连接DP,过点A作AE⊥DP,垂足为E,设DP=x,AE=y,则能反映y与x之间函数关系的大致图象是(  )A. B. C. D.
下面这道题和您要找的题目解题方法是一样的,请您观看下面的题目视频
如图,在矩形ABCD中,AB=3,BC=4,点P在BC上运动,连接DP,过点A作AE⊥DP于E,设DP=x,AE=y,则下列能反映y与x之间函数关系的大致图象是(  )A.B.C.D.
【解析过程】
根据实际情况求得自变量的取值范围.
由题意可知;所以;,,为反比例函数,应从,里面进行选择.由于最小应不,最大不超过,所以.故选.
电话:010-
地址:北京市西城区新街口外大街28号B座6层601
微信公众号
COPYRIGHT (C)
INC. ALL RIGHTS RESERVED. 题谷教育 版权所有
京ICP备号 京公网安备

我要回帖

更多关于 中国地图ae模板 的文章

 

随机推荐