wpf拖拽数据到本程序外,获取鼠标释放的路径实现下载,怎么才能截获到 鼠标左键在程序中按下拖拽文件在程序之外释放获取到释放的路径

qq_28025655 2016-11-01 05:49:52
是这样的,需要实现在程序中拖拽一个文件到程序窗口之外的地方,鼠标释放,获取鼠标释放时的windows路径,然后下载该拖动的文件。

下载方法是自己写的,传递了一个 保存文件的路径,并且还要把这个路径写入到程序中作为“打开文件”功能的路径,还要把该次拖拽下载记录到传输列表。比如各种云盘拖拽文件到桌面就实现下载,并在传输列表中显示出来。按钮的下载实现就是Show一个保存的对话框,选择路径后获取到这个路径们传递给方法。

但从程序中拖出Data到桌面或其他路径下,获取不到路径就无法走旧的下载方法,并无法记录在程序的传说列表中。

DragDrop.DoDragDrop(yn_image, new DataObject(DataFormats.FileDrop, file), DragDropEffects.Copy | DragDropEffects.Move);这样的方式目前无法获取到我需要的路径

如果用windowsapi或者其他方式 ,怎么才能截获到 鼠标左键在程序中按下拖拽文件在程序之外释放获取到释放的路径?
...全文
1338 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
其实有个简单的方法,你可以在拖拽开始的时候,也就是鼠标左键按下的时候,就显示一个全屏的透明面板,当鼠标在这个面板上放开的时候就开始下载,并且隐藏这个面板。
zq1564171310 2017-05-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/zq1564171310/article/details/72770507 思路可以借鉴一下上面链接的,借助一个中间文件,当你鼠标按下,拖拽文件的时候,生成一个中间文件,然后通过DragDrop.DoDragDrop将这个中间文件传给系统剪切板,当系统收到你的鼠标弹起时,中间文件就被粘贴过去了。而监听这个中间文件被剪切的时间,就是你要的时间,这时候检测当前激活的窗体如果时文件夹,ko!这个文件夹就是你要的路径。

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧