首页 > 其他 > 详细

WPF之快速实现拖拽功能

时间:2014-03-09 11:27:36      阅读:509      评论:0      收藏:0      [点我收藏+]

场景:工具栏上有很多图标(一个图标代表一种控件),可以左键按下图标,然后拖拽到设计区域创建一个个的控件。

实现:1.给工具栏上的图标添加MouseLeftDown和MouseMove事件,前者事件是为了告诉Move事件我的确按下了左键,同时也可以在MouseDown事件中初始化一些标识;在后者       中经过自己的逻辑判断,看看是否可以拖拽了(一般就是判断自己的标识,比如是否按下了左键,这样的判断),如果可以则加入如下代码:

    DragDrop.DoDragDrop(sourceControl, data, DragDropEffects.Copy);

   第一个参数就是进行拖拽的控件,第二个参数就是通过拖拽传递的数据(object类型,想怎么传就怎么传),第三个就是一个拖拽特效,具体的值查看MSDN。

  2.给目标区域添加Drop事件和DropEnter事件,第一个事件中就是处理拖拽后要干嘛,也就是松开鼠标左键的一瞬间做的事件;第二个事件呢,就是拖拽状态进入目标区域并    且没有释放之前执行的操作,也就是说可以在Enter事件中进行一些操作或处理,使当前的操作达到可以拖拽的条件。

  DragEventArgs.Data.GetData(typeof(T));

也就是在Drop或者DropEnter中可以通过拖拽事件参数得到拖拽时候传递的数据,也就是步骤1中的第二个参数,通过GetData可以得到执行类型的数据(可能是没有的哦,因为你要和你传递时候的类型匹配才行的哦),然后你就可以做你想做的事情了。

 

好了,这个也就这么多东西,具体的应用大家多思考、多看看MSDN吧。

WPF之快速实现拖拽功能,布布扣,bubuko.com

WPF之快速实现拖拽功能

原文:http://www.cnblogs.com/ListenFly/p/3586274.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!