代码之家  ›  专栏  ›  技术社区  ›  Dänu

拖放到桌面/Explorer

  •  29
  • Dänu  · 技术社区  · 16 年前

    按照我的设想。

    我得到了一个应用程序,它将文件结构(文件夹、文件)从数据库加载到WPF列表视图中。现在,我想从这个列表视图中获取一个文件,将它拖到桌面上(或某个打开的资源管理器窗口)并放到那里。基本的拖放,没有什么花哨。这听起来像是Windows应用程序的“标准”功能——但谷歌不会帮上忙。

    那么我怎样才能做到呢?互操作?

    谢谢

    编辑 :谢谢你的解决方案,我还得谷歌搜索一下。 Here's my complete solution .

    1 回复  |  直到 12 年前
        1
  •  28
  •   Gleno    15 年前

    DragDrop.DoDragDrop 只要你通过一个适当的 DataObject .

    首先把文件复制到某个地方。你可以使用 System.IO.Path.GetTempPath() 如果你没有更好的地方。

    接下来,创建一个包含文件完整路径的字符串数组,并执行以下操作:

    string[] paths = ...;
    DragDrop.DoDragDrop(this, new DataObject(DataFormats.FileDrop, paths),
                        DragDropEffects.Copy); 
    

    实际上,可以在不预先复制文件的情况下执行此操作,但这会导致一些复杂的IDataObject交互,因此,除非您的文件可能非常大并且不在文件系统中,否则我将首先尝试此方法。

    推荐文章