按照我的方案。拖放到桌面/浏览器
我有一个应用程序从数据库加载文件结构(文件夹,文件)到一个WPF ListView。现在我想从这个ListView中抓取一个文件,将它拖到我的桌面(或者某个打开的资源管理器窗口)上,然后放到那里。基本的拖放,没有什么奇特的。这听起来像一个Windows应用程序的“标准”功能 - 但谷歌不会帮助。
那么我该如何做到这一点?互操作性展示?
感谢
编辑:感谢您的解决方案,我仍然不得不做一些谷歌上搜索。 Here's my complete solution。
按照我的方案。拖放到桌面/浏览器
我有一个应用程序从数据库加载文件结构(文件夹,文件)到一个WPF ListView。现在我想从这个ListView中抓取一个文件,将它拖到我的桌面(或者某个打开的资源管理器窗口)上,然后放到那里。基本的拖放,没有什么奇特的。这听起来像一个Windows应用程序的“标准”功能 - 但谷歌不会帮助。
那么我该如何做到这一点?互操作性展示?
感谢
编辑:感谢您的解决方案,我仍然不得不做一些谷歌上搜索。 Here's my complete solution。
DragDrop.DoDragDrop
可以做到这一点,只要你通过它适当的DataObject
。
首先将文件复制到某处。如果你没有更好的地方,你可以使用System.IO.Path.GetTempPath()
。
接下来创建一个包含完整路径的文件字符串数组并执行以下操作:
string[] paths = ...;
DragDrop.DoDragDrop(this, new DataObject(DataFormats.FileDrop, paths),
DragDropEffects.Copy);
它实际上是可以做到这一点没有,复制前的文件,而是进入一些复杂的IDataObject的相互作用,所以除非你的文件可能非常大,并且不在文件系统中,否则我会首先尝试这种方法。
谢谢,我马上试一试。 – 2010-06-15 08:39:33
工作,谢谢。 – 2010-06-15 09:29:23
我知道这是一个非常古老的线程,但是您能否扩展您的声明以“除非您的文件可能非常大” - 部分?我正在努力做到这一点。有一个DragDrop功能,可以在将文件放到某处时下载该文件。 – Falgantil 2015-04-28 07:11:20
如果您在此处发布完整的解决方案作为答案,将不胜感激。 – 2011-09-10 15:12:43
我试过你的例子,但它不会编译,DragDrop是未知的。我是否需要添加参考或其他内容? – GuidoG 2015-11-03 10:52:50