SilverLightViewer 开发人员指南_第1页
SilverLightViewer 开发人员指南_第2页
SilverLightViewer 开发人员指南_第3页
SilverLightViewer 开发人员指南_第4页
SilverLightViewer 开发人员指南_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SilvverLLighhtViieweer开发人员员指南丁 海二一年八月目录TOC o 1-3 h z u HYPERLINK l _Toc270349233 简述 PAGEREF _Toc270349233 h 2 HYPERLINK l _Toc270349234 背景 PAGEREF _Toc270349234 h 2 HYPERLINK l _Toc270349235 术语和定定义 PAGEREF _Toc270349235 h 2 HYPERLINK l _Toc270349236 GIS(地理信信息系统统) PAGEREF _Toc270349236 h 2 HYPERLINK

2、l _Toc270349237 GPS (全球球卫星定定位系统统) PAGEREF _Toc270349237 h 2 HYPERLINK l _Toc270349238 RIA (富因因特网应应用程序序) PAGEREF _Toc270349238 h 3 HYPERLINK l _Toc270349239 Flexx PAGEREF _Toc270349239 h 3 HYPERLINK l _Toc270349240 SilvverLLighht PAGEREF _Toc270349240 h 4 HYPERLINK l _Toc270349241 开发环境境 PAGEREF _Toc2

3、70349241 h 4 HYPERLINK l _Toc270349242 必备知识识 PAGEREF _Toc270349242 h 4 HYPERLINK l _Toc270349243 SilvverLLighht VViewwer开开发框架架 PAGEREF _Toc270349243 h 5 HYPERLINK l _Toc270349244 概述 PAGEREF _Toc270349244 h 5 HYPERLINK l _Toc270349245 系统框架架图 PAGEREF _Toc270349245 h 6 HYPERLINK l _Toc270349246 开发人员员指南

4、 PAGEREF _Toc270349246 h 77 HYPERLINK l _Toc270349247 Widgget Fraamewworkk基础 PAGEREF _Toc270349247 h 7 HYPERLINK l _Toc270349248 系统配置置文件 PAGEREF _Toc270349248 h 111 HYPERLINK l _Toc270349249 系统常用用事件(ApppEveent) PAGEREF _Toc270349249 h 17 HYPERLINK l _Toc270349250 开发自己己的Wiidgeet PAGEREF _Toc270349250

5、 h 255 HYPERLINK l _Toc270349251 使用外部部参数 PAGEREF _Toc270349251 h 334 HYPERLINK l _Toc270349252 使用自定定义图形形光标 PAGEREF _Toc270349252 h 335 HYPERLINK l _Toc270349253 附录I:Widdgetts介绍绍 PAGEREF _Toc270349253 h 35 HYPERLINK l _Toc270349254 主控窗口口(Viieweer CConttrolllerr Wiidgeet) PAGEREF _Toc270349254 h 335 H

6、YPERLINK l _Toc270349255 Headder Conntroolleer PAGEREF _Toc270349255 h 355 HYPERLINK l _Toc270349256 Classsicc Coontrrolller PAGEREF _Toc270349256 h 336 HYPERLINK l _Toc270349257 图层切换换(Maap SSwittcheer WWidgget) PAGEREF _Toc270349257 h 38 HYPERLINK l _Toc270349258 鹰眼(OOverrvieew MMap Widdgett) PAGER

7、EF _Toc270349258 h 399 HYPERLINK l _Toc270349259 书签(BBookkmarrk WWidgget) PAGEREF _Toc270349259 h 40 HYPERLINK l _Toc270349260 附录III:常见见问题 PAGEREF _Toc270349260 h 441 HYPERLINK l _Toc270349261 使用跨域域访问配配置文件件(cllienntacccessspooliccy.xxml) PAGEREF _Toc270349261 h 41简述本文档用用于帮助助开发人人员使用用SillverrLigghtVVi

8、ewwer框架架,开发发基于AArcGGIS forr Siilveerliightt/WPFF APPI 22.0 的RIIA地图图应用。背景ESRII发布了了ArccGISS SiilveerLiightt APPI等快快速Weeb开发发包,受受到了广广大用户户及开发发商的关关注。但但一直以以来开发发商和用用户都只只是使用用在线的的文档及及零散的的在线例例子,开开发商或或用户准准备使用用ArccGISS SiilveerLiightt APPI进行行开发的的时候,总总是感到到无从下下手。基基于以上上原因,本本方案旨旨在为客客户提供供一个可可扩展、移植的的SillverrLigght API

9、I开发框框架,并并向用户户展示AArcGGIS SillverrLigght APII的功能能及魅力力。术语和定定义GIS(地理信信息系统统)地理信息息系统(GGeoggrapphicc Innforrmattionn Syysteem,简简称 GGIS)是是建立在在地球科科学基础础上的边边缘科学学,是以以地理空空间数据据库为基基础,在在计算机机软硬件件的支持持下,对对空间相相关资料料进行采采集、管管理、操操作、查查询分析析、模拟拟、显示示和制图图输出,并并采用地地理模型型分析方方法,适适时提供供多种空空间和动动态的地地理信息息,为地地理研究究和地理理决策服服务而建建立起来来的计算算机技术术系

10、统。是融地地理学、几何学学、计算算机科学学及各类类应用对对象为一一体的综综合性高高新技术术。GPS (全球球卫星定定位系统统)GPS是是全球卫卫星定位位系统(Glooball Poosittionningg Syysteem,GGPS)的英文文缩写,GGPS利利用导航航卫星进进行测时时和测距距,以构构成全球球定位系系统,能能提供个个人候的的定位、授时、测速功功能。GPS是是一种精精密的卫卫星导航航系统。该系统统由244颗绕地地球旋转转的卫星星组成,卫卫星连续续不断地地发送位位置和时时间信息息。这些些卫星均均匀地分分布在66个轨道道上,每每个轨道道有4 颗卫星星。地面面GPSS接收机机可接收收5

11、到112颗卫卫星信号号。为实实现地面面定位功功能,GGPS接接收机至至少需要要接收44个卫星星信号,其其中3个个信号用用来计算算GPSS接收机机的纬度度、经度度和海拔拔高度,第第四个信信号提供供同步时时间校准准。RIA (富因因特网应应用程序序)RIA是是Ricch IInteerneet AAppllicaatioon 的的简称,也也称富因因特网应应用程序序,是由由Maccrommediia(现现Adoobe)最最先提示示的概念念,以示示与传统统Webb应用程程序相区区别。自从B/S架构构迅速流流行开来来之后,我我们就一一直面临临着这样样一个问问题:如如何做到到当初CC/S那那样的表表示层精

12、精确控制制以及良良好的用用户体验验?当然然,大量量的利用用DHTTML以以及 JJavaaScrriptt我们可可以实现现接近CC/S时时代的表表示层控控制和展展现,比比如Biindoows ,但是是我们需需要付出出比C/S时代代更多的的人力物物力才能能做到接接近于CC/S客客户端的的表现方方式,这这不是我我们想要要的。在在我们从从当初狂狂热的BB/S浪浪潮中逐逐渐冷静静下来的的时候,我我们发现现单纯的的瘦客户户端/胖胖服务器器模式并并非是一一个万能能的模式式 - 世间能能量终究究是守恒恒的,有有得必有有失,我我们在获获得了BB/S带带来的种种种好处处之后,也也同样失失去了CC/S带带给我们们

13、的帮助助,因此此RIAA(Riich Intternnet Apppliccatiionss)的出出现就显显得极其其自然了了。RIA意意味:不同凡响响的Weeb功能能、更好的的用户体体验、更强大大的用户户界面、更好的的交互性性、更先进进的开发发模型、更强大大的多媒媒体功能能、更好的的数据管管理、更好的的程序控控制目前RIIA开发发的技术术主要有有,Addobee Fllex、Ajaax、WWPF、OpeenLaaszllo、GGooggle Webb Tooolkkit、Javva SSWT、XULL、JavvaFXX、Siilveerliightt。Flexx随着当今今信息技技术飞速速发展和

14、和Intternnet带带宽的增增加,传传统的文文字图图片的方方式已经经不能满满足人们们对Weeb内容容的需要要。随着着Webb 2.0的概概念越来来越深入入人心,FFlexx技术作作为RIIA技术术的领航航者已经经快速的的发展到到了第三三个版本本Fleex 33.0。Fleex技术术是完全全基于矢矢量图形形技术的的,这样样使得用用户能够够获得更更多的用用户体验验。只要要浏览器器可以播播放Fllashh,就可可以显示示Fleex的网网站。由由于FllashhPlaayerr的高市市场占有有率,基基于Fllex的的RIAA技术已已经逐渐渐成为WWeb 2.00开发的的主要技技术手段段。Fllex

15、的的定位是是提供丰丰富Innterrnett应用的的企业级级开发框框架。轻轻便的开开发模式式和良好好的服务务端兼容容性使得得Fleex已经经成为主主流的网网站和电电子商务务的发展展方向。SilvverLLighhtSilvverllighht是微微软推出出的一个个跨平台台跨操作作系统的的插件,使使Webb开发者者能够在在浏览器器中建造造丰富的的媒体体体验和RRIA应应用。可可用于WWinddowss平台上上的IEE和Fiireffox浏浏览器,以以及Maac OOS XX平台上上的Fiireffox和和Saffarii浏览器器。Silvverllighht 是是一种新新的 WWeb 呈现技技术

16、,能能在各种种平台上上运行。借助该该技术,您您将拥有有内容丰丰富、视视觉效果果绚丽的的交互式式体验,而而且,无无论是在在浏览器器内、在在多个设设备上还还是在桌桌面操作作系统(如如 Appplee Maacinntossh)中中,您都都可以获获得这种种体验。支持创创建3DD模型、可以更更轻松的的现实视视频播放放和分享享的播放放器一类类的东西西,支持持搜索引引擎。开发环境境Winddowss Xpp/20003/20008/77 IISSMicrrosooft Vissuall Sttudiio 220100Micrrosooft Exppresssioon BBlennd 44SilvverLL

17、ighht 44Silvverllighht_44_TooolkkitSilvverLLighht TToolls ffor Vissuall Sttudiio 220100 ArcGGIS forr Siilveerliightt/WPFF APPI 22.0SilvverLLighhtViieweer 11.0 必备知识识熟练使用用Vissuall Sttudiio开发发SillverrLigght(CC # 或VBB)熟悉ArrcGIIS ffor Sillverrligght/WPFF APPISilvverLLighht VViewwer开开发框架架概述SilvverLLighhtV

18、iieweer开发发框架帮帮助开发发人员,快快速的开开发和部部署基于于ArccGISS foor SSilvverllighht/WPFF APPI 22.0 的RIIA地图图应用。SillverrLigght Vieewerr开发框框架有以以下特点点:轻松配置置,以满满足客户户业务需需求和要要求通过Wiidgeet来实实现各种种功能,提供许多核心的Widget如:图层管理、鹰眼等轻松扩展展,可根根据自己己的业务务需求,轻轻松的编编写或下下载wiidgeetsWidggetss采取按按需下载载管理模模式,最最小化服服务器网网络负载载。类似于 ArccGISS Viieweer ffor Fle

19、ex 系统框架架图开发人员员指南Widgget Fraamewworkk基础Widgget是是被封装装在一起起的一段段或一组组孤立的可可执行代代码,它它实现了了用户的的一种或或一组功功能或业业务逻辑辑(包括括可视化化的界面面)。对于面向向服务的的应用,WWidgget甚甚至可以以是一个个服务(数据、业务流流程等)。用户户可以轻轻松的执执行这个个Widdgett。同时时Widdgett也支持持被共享享和重用用。IBasseWiidgeet接口口(IBaaseWWidgget.cs)定义了WWidgget的的一系列列通用接接口,会会被WiidgeetMaanagger调调用。publlic int

20、terffacee IBBaseeWiddgett innt IID geet; sett; vooid settTittle(strringg vaaluee); vooid settIcoon(sstriing vallue); strringg coonfiig geet; sett; CoonfiigDaata connfiggDatta geet; sett; vooid settStaate(strringg vaaluee); Maap mmap gget; seet; vooid settPreeloaad(sstriing vallue); vooid settXYPPosi

21、itioon(ddoubble x, douublee y); vooid settRellatiivePPosiitioon(ddoubble lefft, douublee riightt, ddoubble topp, ddoubble botttomm, sstriing horrizoontaal, strringg veertiicall); Boooleean isDDraggablle geet; sett; Boooleean isRResiizeaablee gett; sset; sttrinng pproxxyUrrl geet; vooid runn(); Basee

22、Widdgett类(BasseWiidgeet.xxamll、BasseWiidgeet.xxamll.css)Widgget的的基础类类,所有有Widdgett都继承承自这个个基类。它实现现了IBBaseeWiddgett接口和和一些通通用的方方法。一些通用用的方法法:publlic voiid sshowwInffoWiindoow(DDicttionnaryy iinfooDatta);publlic voiid ssetMMapAActiion(strringg acctioon, strringg sttatuus, EveentHHanddlerr caallbbackk); pu

23、bblicc vooid settMappNavvigaatioon(SStriing navvMetthodd, SStriing staatuss); pubblicc vooid shoowErrrorr(sttrinng eerroorMeessaage);一些通用用的事件件:publlic dellegaate voiid WWidggetCConffigEEvenntHaandller(objjectt seendeer, ApppEveent e);(配置置文件加加载事件件代理)publlic eveent WiddgettConnfiggEveentHHanddlerr Wii

24、dgeetCoonfiigEvventt; (配配置文件件加载事事件)publlic eveent WiddgettConnfiggEveentHHanddlerr WiidgeetCoonfiigErrrorrEveent; (配配置文件件加载失失败事件件)注:所有有的Wiidgeet必须须继承自自这个类类。IWiddgettPannel接接口(IWiddgettPannel.cs)这个接口口定义了了Widdgett模板(通用的的界面及及行为)在BaaseWWidgget 中被调调用的接接口。 pubblicc innterrfacce IIWiddgettPannel innt wwidg

25、getIId geet; sett; sttrinng wwidggetTTitlle geet; sett; sttrinng wwidggetIIconn gett; sset; vooid settStaate(strringg vaaluee); Boooleean isDDraggablle geet; sett; Boooleean isRResiizeaablee gett; sset; WidggetPPaneel类(WiddgettPannel.xamml、WWidggetPPaneel.xamml.ccs)一个Wiidgeet模板板。提供了了widdgett的基本的的用户界

26、界面布局局(面板、窗口、标题栏栏、图像按按钮等)和行为为(最大大化、最最小化、关闭等等).通过使使用Wiidgeet模板板,Wiidgeet开发发人员可可以花更更多的他他们对自自己的核核心业务务需求的的开发时时间。开发人员员可以自定定义自己己的wiidgeet模板板,一定定要实现现IWiddgettPannel接接口。一些通用用的方法法:publlic virrtuaal vvoidd adddTiitleebarrButttonn(Sttrinng iiconn, SStriing tipp, MMousseBuuttoonEvventtHanndleer mmousseLeeftBButt

27、tonDDownn);一些通用用的事件件:publlic eveent EveentHHanddlerr WiidgeetMiinimmizeedEvventt;(最最小化事事件) ppubllic eveent EveentHHanddlerr WiidgeetMaaximmizeedEvventt; (最最大化事事件) ppubllic eveent EveentHHanddlerr WiidgeetClloseedEvventt; (关关闭事件件)Widgget 界面元元素titleBartxtTitleimgIconwidgetPanelContentLayoutRoot界面元素素嵌套

28、关关系如下下图:WidgetBarWidgget 和 WWidggetBBarWidget控制条WidgetWidgget :接受受WiddgettConntorrl 管管理。WidggetBBar:不受WWidggetCConttorll 管理理。系统配置置文件我们可可以通过过修改配配置文件件,轻松松完成系系统界面面的定制制。全局配置置文件(默认为为connfigg.xmml)标签段段定义用用户的UUI界面面。包括括tittle、subbtittle、loggo、styylessheeet、等等标签段段。:SillverrLigght Vieewerr应用程程序的标标题。(HeaaderrC

29、onntroolleer Widdgett的左上上角显示示标题):SillverrLigght Vieewerr应用程程序的子子标题。(HeaaderrConntroolleer Widdgett的标题下方方显示):SillverrLigght Vieewerr应用程程序的Loggo。(HeaaderrConntroolleer Widdgett的左上上角显示示):SillverrLigght Vieewerr应用程程序的风风格描述述文件。:Widdgett的布局局方式。有下面面几种布布局方式式:horiizonntall:横向向布局vertticaal:纵向布布局(默认)floaat:随随意

30、布局局,wiidgeet 可可拖动、调整大大小标签段段定义Maap相关关的信息息,标签段段包括下下面的一一些属性性:inittiallExteent:安装时时地图显显示的区区域(XMiin YYMinn XMMax YMaax)fulllExteent:地图显显示的最最大区域域(XMiin YYMinn XMMax YMaax)leftt:地图距距离最左边的的距离righht:地图距距离最右边的的距离top:地图距距离最上边的的距离botttom:地图距距离最下边的的距离还包含下下面的标标签段:定义背背景地图图信息,包包含maapseerviice标标签段:定义一一个地图图服务信信息,包包含下

31、面面的一些些属性及及值域Labeel:地图服务务的标题题名typee:地图服服务类型型(tilleddynnamiicvvirttuallearrthimaage)visiiblee:地图服服务的可可见性tokeen:tokken串串alphha:透明度度iconn:地图服服务的图图标stylle:图图层风格格(Roaad、Aerriall 、AerriallWitthLaabells) (只适适用于vvirttuallearrth)值域:地地图服务务的访问问地址:定义操操作地图图信息,包包含laayerr标签段段:定义一一个操作作图层信息息,包含含下面的的一些属属性及值值域Labeel:图图

32、层的标标题名typee:图层层的类型型(tiiledddyynammicfeaaturre)visiiblee:图层层的可见见性tokeen:ttokeen串alphha:透透明度iconn:图层层的图标标值域:图图层的访访问地址址标标签段定义Wiidgeets的的信息。包含多多个标签段段:定定义一个个Widdgett的信息息,包含含下面的的属性及及值域Labeel:WWidgget的的标题名名iconn:Widdgett的图标标typee:Widdgett的类名名(创建建Widdgett时使用用)prelloadd:启动应应用系统统时是否否自动加加载(ttruee/faalsee)conff

33、ig:Widdgett的独有有的配置置文件。resddictt:Wiidgeet的独独有的资资源文件件。grouup: Wiidgeet的分分组信息息x:Wiidgeet的XX轴绝对对位置y:Wiidgeet的YY轴绝对对位置值域:WWidgget所所在DLLL或XXap包包的名称称(含路路径)标签段段定义WWidggetbbarss的信息息。包含含多个标签签段:定义义一个WWidggetbbar的的信息,包包含下面面的属性性及值域域Labeel:Widdgettbarr的标题题名iconn:Widdgettbarr的图标标typee:Widdgettbarr的类名名(创建建Widdgett时

34、使用用)conffig:Widdgettbarr的独有有的配置置文件。resddictt:Widdgettbarr的独有有的资源源文件。leftt:Widdgettbarr相对于于最左边边的距离离(没有有设置时时不参与与计算)righht:Widdgettbarr相对于于最右边边的距离离(没有有设置时时不参与与计算)top:Widdgettbarr相对于于最上边边的距离离(没有有设置时时不参与与计算)botttom:Widdgettbarr相对于于最下边边的距离离(没有有设置时时不参与与计算)horiizonntall:Widdgettbarr横向计算算模式(lefft(默认):自左向向右,

35、rigght:自右向向左)vertticaal:Widdgettbarr纵向计计算模式式(topp(默认):自上向下 , boottoom:自下向上)值域:WWidgget所所在DLLL或XXap包包的名称称(含路路径)Widgget配配置文件件(*.xmll)Widdgett独有的的配置文文件,定定义Wiidgeet需要要的配置置信息,配配置文件件格式及及内容由由Widdgett自己处处理(开开发人员员在WiidgeetCoonfiigEvventt事件中中处理)。ConffigDDataa类publlic claass ConnfiggDatta puubliic DDicttionnar

36、yy UUI geet; sett; puubliic DDicttionnaryy MMap gget; seet; puubliic DDicttionnaryyinnt, Dicctioonarry Baasemmapss gett; sset; publlic Dicctioonarryiint, Diictiionaary OOperratiionaalLaayerrs geet; sett; puubliic DDicttionnaryyinnt, Dicctioonarry Wiidgeets gget; seet; publlic Dicctioonarrysstriing,

37、Diictiionaary CConttrolls geet; sett; 系统常用用事件(ApppEveent)定义了一一些列系系统常用用的事件件,包含在ApppEveent.cs文文件中。使用监监听和发发起系统统事件必必须使用用VieewerrConntaiinerr全局类类。监听事事件例子子:ViewwerCConttainner.adddEveentLListteneer(AAppEEvennt.CCONTTAINNER_INIITIAALIZZED, neew VViewwerEEvenntHaandller(conntaiinerrIniitiaalizzed);触发事件件例子:V

38、iewwerCConttainner.disspattchEEvennt(AAppEEvennt.WWIDGGET_RUNN, nnew ApppEveent(IteemIdd);APP_ERRROR应用程程序出错错事件,在在应用程程序出错错时触发发。AppEEvennt类的的datta属性性为字符符串类型型。触发事件件示例:Striing datta = “出错了了!”;ViewwerCConttainner.disspattchEEvennt(AAppEEvennt.AAPP_ERRROR, neew AAppEEvennt(ddataa);CONFFIG_LOAADEDD系统全全局配置置

39、文件加加载成功功后,触发发事件。AppEEvennt类的的datta属性性为ConffigDDataa类型实例例。监听事件件示例:ViewwerCConttainner.adddEveentLListteneer(AAppEEvennt.CCONFFIG_LOAADEDD, new VieewerrEveentHHanddlerr(CoonfiigLooadeed); priivatte vvoidd CoonfiigLooadeed(oobjeect sennderr, AAppEEvennt ee) MAP_LOAADEDD地图控控件加载载成功时时触发的的事件。AppEEvennt 类类的

40、daata属属性为EESRII.ArrcGIIS.CClieent.Mapp类型实实例。监听事事件示例例:ViewwerCConttainner.adddEveentLListteneer(AAppEEvennt.MMAP_LOAADEDD, new VieewerrEveentHHanddlerr(MaapLooadeed);privvatee vooid MappLoaadedd(obbjecct ssendder, ApppEvventt e) map = (Mapp)e.Datta; MAP_RESSIZEE用于改变变地图控控件大小小事件。AppEEvennt 类类的daata属属性为

41、DDicttionnaryy类型型实例,包包含以下下的元素素:lefft : 左左边的空空白距离离 rrighht : 右右边的空空白距离离 ttop : 上边的空白白距离 bbotttom : 下边的的空白距距离触发事件件示例:Dicttionnaryy ddataa = neww Diictiionaary(); daata.Addd(lleftt,00); ddataa.Addd(rigght,0); daata.Addd(ttop,0); daata.Addd(bbotttom,0);ViewwerCConttainner.disspattchEEvennt(AAppEEvennt.M

42、MAP_RESSIZEE, nnew ApppEveent(datta);LAYEER_LLOADDED基础地图图图层加加载成功功时触发发的事件件。AppEEvennt 类类的daata属属性为NNulll。监听事事件示例例:ViewwerCConttainner.adddEveentLListteneer(AAppEEvennt.LLAYEER_LLOADDED, new VieewerrEveentHHanddlerr(OnnlayyerLLoadded);privvatee vooid OnllayeerLooadeed(oobjeect sennderr, AAppEEvennt ee

43、)MAP_LAYYER_VISSIBLLE设置地地图图层层是否显显示的事事件。AppEEvennt 类类的daata属属性为DDicttionnaryy类型实实例,包包含以下下的元素素:layyer : ESRRI.AArcGGIS.Cliientt.laayerr类型 vvisiiblee : 布尔尔类型(truue/ffalsse)触发事件件示例:Dicttionnaryy ddataa = neww Diictiionaary();ESRII.ArrcGIIS.CClieent.Layyer ly = ggetLLayeer(layyer);dataa.Addd(layyer, lly)

44、;dataa.Addd(vissiblle,fallse);ViewwerCConttainner.disspattchEEvennt(AAppEEvennt.MMAP_LAYYER_VISSIBLLE, new ppEEvennt(ddataa);BASEEMAPP_SWWITCCH切换基基础地图图图层显显示的事事件。AppEEvennt 类类的daata属属性为iint类类型的图图层IDD(laayerrID);触发事件件示例:striing labbel =Strreetts MMap;Dicttionnaryyinnt, Dicctioonarry BaaseMMapss = conn

45、figgDatta.BBaseemapps;for (innt ii = 0; i BaaseMMapss.Coountt(); i+) iif (labbel = BasseMaapsilaabell) ViewwerCConttainner.disspattchEEvennt(AAppEEvennt.BBASEEMAPP_SWWITCCH, new ApppEveent(i); brreakk;WIDGGET_RUNN用于运行行指定WWidgget的的事件。AppEEvennt 类类的daata属属性为iint类类型的WWidgget标标识;触发事件件示例:ViewwerCConttain

46、ner.disspattchEEvennt(AAppEEvennt.WWIDGGET_RUNN, nnew ApppEveent(id);WIDGGET_BROOADCCASTTWidgget的的广播事事件,所所有Wiidgeet都默默认收到到该事件件。AppEEvennt 类类的daata属属性为DDicttionnaryy类型实实例,内内容自定定;触发事件件示例:Dicttionnaryy ddataa = neww Diictiionaary();dataacclossewiidgeet = 10;ViewwerCConttainner.disspattchEEvennt(AAppEEv

47、ennt.WWIDGGET_BROOADCCASTT, new ApppEveent(datta);处理事件件示例(WWidgget):prottectted oveerriide voiid PProccesssBrooadccastt(Diictiionaary daata)SET_MAPP_NAAVIGGATIION用于指定定地图当当前导航航操作的的事件,所所有Wiidgeet可调调用seetMaapNaaviggatiion(Strringg naavMeethood, Strringg sttatuus)方方法触发发该事件件。AppEEvennt 类类的daata属属性为DDictt

48、ionnaryy类型实实例,包含以以下的元元素:toool : 当前导导航任务务,主要要包含: paan 移动地地图(NNaviigattionn.PAAN)zoommin 放大地地图(NNaviigattionn.ZOOOM_IN)zoommoutt 缩小地地图(NNaviigattionn.ZOOOM_OUTT)zoommfulll 全景地地图(VViewwerCConttainner.NAVVIGAATIOON_ZZOOMM_FUULL)zoommpreevioous地图上上一场景景(ViieweerCoontaaineer.NNAVIIGATTIONN_ZOOOM_PREEVIOOUS

49、)zoommnexxt 地图下下一场景景(ViieweerCoontaaineer.NNAVIIGATTIONN_ZOOOM_NEXXT) sstattus : 当前前状态信信息触发事事件示例例:setMMapNNaviigattionn(ppan, 移动);SET_MAPP_ACCTIOON用于获得得地图画画图操作作的事件件所有WWidgget可可调用ssetMMapAActiion(strringg acctioon, strringg sttatuus, EveentHHanddlerr caallbbackk)方法触触发该事事件。AppEEvennt 类类的daata属属性为DDict

50、tionnaryy类型实实例,包含以以下的元元素:toool : 当前画图图方法,主主要包含含:poinnt画点点(DraawMoode.Poiint)recttanggle画画矩形(DraawMoode.Recctannglee)polyylinne画线线(DraawMoode.Pollyliine)polyygonn画多边边形(DraawMoode.Pollygoon)freeehannd手画画(DraawMoode.Freeehaand) sstattus : 当前前状态信信息 hhanddlerr : ddrawwEndd事件句句柄触发事件件示例:setMMapAActiion(val

51、lue, sttatuus, draawEnnd);privvatee vooid draawEnnd(oobjeect sennderr,DrrawEEvenntArrgs e) DATAA_PUUBLIISH发布新的的共享数数据的事事件,所所有Wiidgeet可调调用adddShhareedDaata(strringg keey, Lisst liist)方法触触发该事事件。AppEEvennt 类类的daata属属性为DDicttionnaryy类型实实例,内内容为:数据标识识1: 数据据内容数据标识识n: 数据内内容触发事事件示例例:Dicttionnaryy ddataa = new

52、w Diictiionaary(); datta.AAdd(keyy, tthiss); VieewerrConntaiinerr.diispaatchhEveent(ApppEveent.DATTA_PPUBLLISHH, nnew ApppEveent(datta);监听事件件示例:ViewwerCConttainner.adddEveentLListteneer(AAppEEvennt.DDATAA_PUUBLIISH, new VieewerrEveentHHanddlerr(daatappubllishh); priivatte vvoidd daatappubllishh (oob

53、jeect sennderr, AAppEEvennt ee) DATAA_NEEW_PPUBLLISHHED当新的数数据被加加到共享享数据池池时触发发的事件。AppEEvennt 类类的daata属属性为DDicttionnaryy类型实实例,内内容为:数据标识识1: 数据内内容数据标识识n: 数据内内容监听事件件示例:ViewwerCConttainner.adddEveentLListteneer(AAppEEvennt.DDATAA_NEEW_PPUBLLISHHED, new VieewerrEveentHHanddlerr(daatannewppubllishh); priivat

54、te vvoidd daatannewppubllishh (oobjeect sennderr, AAppEEvennt ee) DATAA_FEETCHH_ALLL发出获得得所有共共享数据据池中数数据申请请的事件,事事件将会会触发DDATAA_SEENT事事件,所所有Wiidgeet可调调用feetchhShaareddDatta()方法触触发该事事件。AppEEvennt 类类的daata属属性为nnulll触发事事件示例例:thiss. ffetcchShhareedDaata ();DATAA_FEETCHH发出获得得指定共享享数据池池中数据据申请的的事件,事事件将会会触发DDATA

55、A_SEENT事事件。AppEEvennt 类类的daata属属性为DDicttionnaryy类型实实例,内内容为:数据标识识1: 数据内内容数据标识识n: 数据内内容触发事事件示例例:Striing keyy = “keey1”; VieewerrConntaiinerr.diispaatchhEveent(ApppEveent.DATTA_FFETCCH, neww ApppEvventt(keey);DATAA_SEENT由共享数数据池发发出的响响应数据据查看申请请(DATTA_FFETCCH、DATTA_FFETCCH_AALL)的事件件。AppEEvennt 类类的daata属属性

56、为DDicttionnaryy类型实实例,内内容为:数据标识识1: 数据内内容数据标识识n: 数据内内容监听事件件示例:ViewwerCConttainner.adddEveentLListteneer(AAppEEvennt.DDATAA_SEEND, new VieewerrEveentHHanddlerr(daatassendd); priivatte vvoidd daatassendd (oobjeect sennderr, AAppEEvennt ee) SHOWW_INNFOWWINDDOW显示信息息窗口事事件,所所有Wiidgeet可调调用shhowIInfooWinndoww

57、(Diictiionaary)方法法触发该该事件。AppEEvennt 类类的daata属属性为DDicttionnaryy类型实实例,包包含以下下的元素素:icoon : 信息的的图标 ttitlle : 信息的的标题内内容 llinkk : 信信息的链链接信息息 ppoinnt : 信息在在图上显显示的位位置(EESRII.ArrcGIIS.CClieent.Geoomettry.MappPoiint) ggeommetrry : 信息对对应的几几何元素素(ESSRI.ArccGISS.Clliennt.Geoomettry)触发事件件示例:Dicttionnaryyinnfoddataa

58、 = neww Diictiionaary();thiss.shhowIInfooWinndoww(innfoddataa);关闭信息息窗口示示例:thiss.shhowIInfooWinndoww(nuull);开发自己己的Wiidgeet这节将将给大家家介绍如如何创建建自己的的Widdgett,当然然首先我我们要安安装好开开发环境境。然后后在VSS20110中打打开解决决方案(SillverrligghtVViewwer)。创建新的的工程首先我们们在VSS20110创建建一个新新的工程程,我们们支持创创建”SillverrLigght 应用程程序” 和”SillverrLigght 类库”

59、两种类型型的工程程文件。下面我我们以”SillverrLigght 类库”类型的的工程类类创建我我们的WWidgget(MyFFirsstWiidgeet)。然后修修改工程程的属性性:修改“Sillverrligght”页的“默认命命名空间间”为“ ESSRI.SillverrligghtVViewwer.Widdgetts”.在“生生成事件件”页的“后期生生成事件件命令行行”中添加下下面的语语句:copyy $(TarrgettPatth) $(SSoluutioonDiir)SSilvverllighhtViieweer.WWebCliienttBinnwiidgeetscopyy $(P

60、roojecctDiir)$(TaargeetNaame).xmml $(SooluttionnDirr)SiilveerliighttVieewerr.WeebCClieentBBinwiddgetts然后添加加 SiilveerLiightt Viieweer 引引用最后保存存工程。我们马上上可以创创建自己己的Wiidgeet了。创建新的的Widdgett首先创建建一个新新的SiilveerLiightt用户控控件,命命名为MMyFiirsttWiddgett。修改 MMyFiirsttWiddgett.xaaml 文件替换UsserCConttroll 为 slvv:BaaseWWidg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论