流水账 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)
明天用到程序中试试看。
我把拖拽分为三类:
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)
明天用到程序中试试看。
相关文章推荐
- 分享一个HTML5的drag and drop API实现的图片拖拽分组效果
- Very Simple WPF Drag and Drop Sample without Win32 Calls
- Drag and Drop in WPF
- 【自定义控件】让你的控件也具有拖拽(drag-and-drop)功能 详细版
- 让你的控件也具有拖拽(drag-and-drop)功能
- 分享一个HTML5的drag and drop API实现的图片拖拽分组效果
- WinForm DataGridView & WPF DataGrid 的拖拽(Drag & Drop)
- drag and drop(拖拽)
- Drag-and-Drop Image Vector——拖拽Image Vector
- 在.NET中实现窗体控件的内容拖拽效果(Drag-and-Drop)
- 让你的控件也具有拖拽(drag-and-drop)功能
- EasyUI-treegrid-拖拽的实现(drag and drop)
- Drag and Drop Items in a WPF ListView
- [Selenium]计算坐标进行拖拽,重写dragAndDropOffset
- WinForm DataGridView & WPF DataGrid 的拖拽(Drag & Drop)[z]
- SWT 应用程序 实现的Drag and Drop(DND) 和 GEF 树上元素的拖拽
- Eclipse 拖拽功能(Drag and Drop)
- VC实现文件管理器拖拽(Drag-and-Drop)
- qml demo分析(externaldraganddrop-拖拽)
- Drag-and-Drop——拖拽