遵循我的方案。
我有一个应用程序,它将文件结构(文件夹,文件)从数据库加载到WPF ListView中。现在我想从这个ListView中获取一个文件,将它拖到我的桌面(或一些打开的资源管理器窗口)上并将其放在那里。基本的拖放,没有什么花哨的。这听起来像是Windows应用程序的“标准”功能 - 但谷歌无济于事。
那我怎么能做到这一点?互操作性展示?
由于
编辑:感谢您的解决方案,我仍然需要进行一些谷歌搜索。 Here's my complete solution
答案 0 :(得分:28)
DragDrop.DoDragDrop
。, DataObject
就可以执行此操作
首先将文件复制到某处。如果您没有更好的地方,可以使用System.IO.Path.GetTempPath()
。
接下来创建一个包含文件完整路径的字符串数组,并执行以下操作:
string[] paths = ...;
DragDrop.DoDragDrop(this, new DataObject(DataFormats.FileDrop, paths),
DragDropEffects.Copy);
实际上可以在不预先复制文件但是进入一些复杂的IDataObject交互的情况下执行此操作,因此除非您的文件可能非常大并且尚未在文件系统中,否则我将首先尝试此方法。