您的位置:首页 > 运维架构

流水账 5.4 WPF中的拖拽 Drag-and-Drop

2009-05-04 19:28 330 查看
总体的实现并不复杂。msdn中有专题介绍,还有不少例子。

我把拖拽分为三类:

1. 在同一WPF窗口内拖拽,应用场景有:

a) 拖拽改变控件大小

b) 移动控件

c) 在不同容器中移动控件(比如在资源管理其中移动文件)

How can I drag and drop items between data bound ItemsControls-

2. 在WPF窗口和其他程序中拖拽,应用场景:

a) 打开文件

b) 保存文件(需外部程序支持)

3. 在同一WPF程序的不同窗口中拖拽,应用场景:

没想出什么太典型的。

第1,2类在MSDN中都有例子。Drag and Drop Samples

第3类也不是很复杂。

主要都是通过设置控件

AllowDrop属性,

DragEnter,DragOver,DragLeave和Drop事件实现的。还有GiveFeedback事件,不过比较少用。

不过目前有一个难点:如果在拖拽的时候显示被拖拽对象的缩略图(Thumbnail)





比如上图的样式。但是在MSDN中例子里你只能看到类似下面的图标。





现在正在研究这个问题。

对于第3类问题比较好办。因为完全都是自己的程序,可以创建一个小窗口跟随鼠标移动,作为缩略图。

难办的是1,2类,都需要跟外部程序,比如资源管理器,交互。

在Google上搜索 wpf drag-and-drop thumbnail。(了解一些术语的英文名称,因为一般中文很难找到很专业的技术文档)。

找到了下面一个牛人系列文章。

Shell Style Drag and Drop in .NET (WPF and WinForms)



















明天用到程序中试试看。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: