DeepEarth中的拖放行为(DragBehavior)

1/27/2010来源:ASP技巧人气:3887

 在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;
    }
}