在DeepEarth中,地图的拖放行为用于规范用户在操作地图的时候的选择、移动和绘制等操作模型。DeepEarth以枚举结构将其封装在地图控件(Map)的内部,源代码如下:
代码
/// <summary>
/// 地图拖放行为
/// </summary>
public enum DragBehavior
{
/// <summary>
/// 鼠标成手型图标点在地图上拖放,地图的呈现随同鼠标的拖动进行移动并定位于鼠标释放的位置。
/// </summary>
Pan,
/// <summary>
///在地图上通过选择绘制出一个选框图形,当鼠标释放选择的时候将地图放大级别显示。
/// </summary>
Select,
/// <summary>
/// 在地图上绘制图形。
/// </summary>
Draw
}
在DeepEarth中的拖放行为默认被定义为鼠标拖放行为,当用户在所呈现的地图上操作地图的时候,鼠标成手型图标点在地图上拖放地图,当鼠标释放拖动并将地图定位于鼠标释放拖动的地图位置。默认的拖放行为在源代码中被定义为如下:
//地图拖放行为
private DragBehavior _DragMode = DragBehavior.Pan;
上面对地图的拖放行为进行了简单的描述,下面我们来看看如何在开发中使用地图的拖放行为,我们可以在界面上放置一个Button来做个实验,通过点击按钮实现切换地图拖放行为的功能:
代码
/// <summary>
/// 改变地图的拖放行为
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnDragBehavior_Click(object sender, RoutedEventArgs e)
{
//判断当前地图的拖放模式--实现两种模式之间切换
switch (mapInstance.DragMode)
{
case Map.DragBehavior.Pan:
mapInstance.DragMode = Map.DragBehavior.Select;
ToolTipService.SetToolTip(btnDragBehavior, "切换到选择放大模式");
btnDragBehavior.Content = "选择";
break;
case Map.DragBehavior.Select:
mapInstance.DragMode = Map.DragBehavior.Pan;
ToolTipService.SetToolTip(btnDragBehavior, "切换到拖放平移模式");
btnDragBehavior.Content = "拖放";
break;
}
}