总体的实现并不复杂。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)

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

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

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

现在正在研究这个问题。

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

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

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

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

Shell Style Drag and Drop in .NET (WPF and WinForms) 流水账 5.4  WPF中的拖拽 Drag-and-Drop流水账 5.4  WPF中的拖拽 Drag-and-Drop流水账 5.4  WPF中的拖拽 Drag-and-Drop流水账 5.4  WPF中的拖拽 Drag-and-Drop流水账 5.4  WPF中的拖拽 Drag-and-Drop流水账 5.4  WPF中的拖拽 Drag-and-Drop流水账 5.4  WPF中的拖拽 Drag-and-Drop流水账 5.4  WPF中的拖拽 Drag-and-Drop流水账 5.4  WPF中的拖拽 Drag-and-Drop流水账 5.4  WPF中的拖拽 Drag-and-Drop

明天用到程序中试试看。

相关文章:

  • 2022-01-31
  • 2021-12-12
  • 2022-12-23
  • 2021-12-29
猜你喜欢
  • 2021-06-01
  • 2021-12-12
  • 2022-12-23
  • 2022-02-23
  • 2022-12-23
  • 2021-11-01
相关资源
相似解决方案