行为和行动
微软Expression Blend 4定义了一个标准的行为,这是可重复使用的打包代码,可以拖动到任何对象,通过更改其属性微调。行为允许您添加到您的应用程序的交互性,而无需编写任何代码。行为API由三个核心类:触发,动作和行为。的ArcGIS API for Silverlight中包含了一套行为和行动在ESRI.ArcGIS.Client.Behaviors程序集,可用于定义用户输入和地图的行为和内容的互动关系。
要在您的应用程序中使用的行为和行动,您必须添加一个引用的System.Windows.Interactivity组件。该组件包含在Expression Blend的产品或Expression Blend中4 SDK(目前使用Expression Blend 4)。
在所有的代码下面的例子中,引用的System.Windows.Interactivity,ESRI.ArcGIS.Client,和ESRI.ArcGIS.Client.Behaviors组件添加到项目中,每一个命名空间引用添加到页面中:
xmlns:esri="http://schemas.esri.com/arcgis/client/2009" xmlns:esriBehaviors="clr-namespace:ESRI.ArcGIS.Client.Behaviors;assembly=ESRI.ArcGIS.Client.Behaviors" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
行为
行为是由特定的控制一个触发器和行动,为。为Silverlight的ArcGIS API所包含的所有行为与预定义的事件(触发)生成(行动)的结果在地图上。为您准备的行为,因此,您只需要添加一个行为,一个地图使用。下表列出了在地图上的行为,提供了描述,并为每个显示的代码示例:
行为 |
描述 |
代码示例。 |
---|---|---|
ConstrainExtentBehavior |
地图范围限制到信封。用户不能浏览外信封中定义的行为。 |
x:Name="MyMap" Extent="-120,30,-60,60"> . . .ConstrainedExtent="-120,30,-60,60"/>
|
MaintainExtentBehavior |
维持目前的程度时,调整地图的大小。 |
x:Name="MyMap"> . . . />
|
ShowCoordinatesBehavior |
显示地图坐标下的鼠标光标时,将鼠标指针悬停在地图上。 |
x:Name="MyMap"> . . . FormatString="{}{0:0.00} , {1:0.00}"/>
|
操作
一个动作是由一个触发器和一个目标。触发器是一个事件,比如一个按钮的点击事件。一个目标是使用或显示的动作的结果。为Silverlight的ArcGIS API包含的行动将始终目标的地图和它的内容。动作包括添加图形,导航地图,并使用图层。下表列出了可用的操作,提供了描述,并为每个显示的代码示例:
行动 |
描述 |
代码示例。 |
---|---|---|
ClearGraphicsAction |
清除所有的图形,在图形层。 |
EventName="Click"> GraphicsLayerID="MyGraphicsLayer"TargetName="MyMap" />
|
MeasureAction |
显示测量距离,半径和地区。 |
EventName="Click"> AreaUnit="SquareMiles"DisplayTotals="True" DistanceUnit="Miles"MapUnits="DecimalDegrees" MeasureMode="Polygon"FillSymbol="{StaticResource DefaultFillSymbol}"TargetName="MyMap"/>
|
PanToAction |
潘到指定的几何形状。 |
EventName="Click"> TargetName="MyMap"> X="-120" Y="43"/>
|
RedlineAction |
在地图上绘制的图形,并把它们添加到图形层。 |
EventName="Click"> Color="#FF32FF00"DrawMode="Freehand" GraphicsLayerID="MyGraphicsLayer"TargetName="MyMap"/>
|
SpatialQueryAction |
在地图上的查询功能,在功能层绘制几何。绘制的图形层的结果。 |
EventName="Click"> DrawMode="Rectangle"LayerID="MyGraphicsLayer"Url="http://myserver/ArcGIS/rest/myservice/MapServer/2"Symbol="{StaticResource GraphicsLayerFillSymbol}"TargetName="MyMap" />
|
ToggleLayerAction |
切换一个层的可见性。 |
EventName="Click"> LayerID="MyDynamicLayer"TargetName="MyMap"/>
|
UpdateFeatureLayerAction |
刷新一个功能层的内容。 |
EventName="Click"> FeatureLayerID="MyFeatureLayer"TargetName="MyMap" />
|
ZoomToAction |
放大到指定的几何形状。如果几何体是一个点,在地图上会出锅。 |
EventName="Click"> TargetName="MyMap"> XMin="-110"YMin="40" XMax="-100" YMax="50" />
|
ZoomToFullExtentAction |
缩放的最大范围内的所有层。 |
EventName="Click"> TargetName="MyMap"/>
|
ZoomToLayerAction |
缩放到指定的层的程度。 |
EventName="Click"> LayerID="MyTileLayer"TargetName="MyMap"/>
|