DeepEarth中的拖放行为(DragBehavior)

  在DeepEarth中,地图的拖放行为用于规范用户在操作地图的时候的选择、移动和绘制等操作模型。DeepEarth以枚举结构将其封装在地图控件(Map)的内部,源代码如下:
ExpandedBlockStart.gif 代码
///   <summary>
///  地图拖放行为
///   </summary>
public   enum  DragBehavior
{
    
///   <summary>
    
///  鼠标成手型图标点在地图上拖放,地图的呈现随同鼠标的拖动进行移动并定位于鼠标释放的位置。
    
///   </summary>
    Pan,

    
///   <summary>
    
/// 在地图上通过选择绘制出一个选框图形,当鼠标释放选择的时候将地图放大级别显示。
    
///   </summary>
    Select,

    
///   <summary>
    
///  在地图上绘制图形。
    
///   </summary>
    Draw
}

 

  在DeepEarth中的拖放行为默认被定义为鼠标拖放行为,当用户在所呈现的地图上操作地图的时候,鼠标成手型图标点在地图上拖放地图,当鼠标释放拖动并将地图定位于鼠标释放拖动的地图位置。默认的拖放行为在源代码中被定义为如下:

// 地图拖放行为
private  DragBehavior _DragMode  =  DragBehavior.Pan;

 

  上面对地图的拖放行为进行了简单的描述,下面我们来看看如何在开发中使用地图的拖放行为,我们可以在界面上放置一个Button来做个实验,通过点击按钮实现切换地图拖放行为的功能:

ExpandedBlockStart.gif 代码
///   <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 ;
    }
}

 

 

  上面代码块思路非常清晰,通过当前地图的拖放行为进行判断,交替设置地图的拖放行为,编译程序后运行效果如下图所示:

        

  

  按扭放在地图中间不太好看,我们可以通过上一篇《探索DeepEarth的内置控件》中所介绍的方法将拖放模式的切换触发功能按扭移置到功能导航菜单上去,这样整体看上去的感觉就大不一样了。

         

 

  这里改变了下界面布局,将原来直接适用按钮显示文字的方式更改为适用图片的方式, 通过不同的拖放行为来操作地图,此功能的切换实现非常方便、简单,但却非常适用。我们可以通过扩展地图的拖放行为实现很多功能,比如在地图上插标、选点、框选等复杂的操作,本文暂时不做介绍,在后续相关文章里在详细介绍如何实现这些功能。

 

版权说明

  本文属原创文章,欢迎转载且注明文章出处,其版权归作者和博客园共有。  

  作      者:Beniao

 文章出处:http://beniao.cnblogs.com/  或  http://www.cnblogs.com/

 

转载于:https://www.cnblogs.com/beniao/archive/2010/01/27/1657265.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值