C# WPF:这次把文件拖出去!
- 首发公众号:Dotnet9
- 作者:沙漠之尽头的狼
- 编辑于:成都,2020-12-01
回顾上篇文章:C# WPF:把文件给我拖进来!!!

本文完成对应的下文:《C# WPF:这次把文件拖出去!》
提前看效果吧:

上面效果的代码很少,xaml中只注册事件PreviewMouseLeftButtonDown即可:
<Grid MouseMove="Grid_MouseMove" AllowDrop="True" Drop="Grid_Drop" DragEnter="Grid_DragEnter" PreviewMouseLeftButtonDown="Grid_PreviewMouseLeftButtonDown">
事件处理代码如下:
//处理文件拽出操作
private void Grid_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
// 目前每个菜单由一个Image和TextBlock组成,所以判断拖拽的是否是一个Image控件,其他目标控件的拖拽不处理
var img = e.OriginalSource as Image;
if (img == null || img.Tag == null)
{
return;
}
var menuInfo = img.Tag as MenuItemInfo;
if(menuInfo==null)
{
return;
}
#region 拖拽代码
ListView lv = new ListView();
string dataFormat = DataFormats.FileDrop;
DataObject dataObject = new DataObject(dataFormat, new string[] { menuInfo.FilePath});
DragDropEffects dde = DragDrop.DoDragDrop(lv, dataObject, DragDropEffects.Copy);
#endregion
}
关键的是后面的代码(拖拽代码,源码仓库路径),需要将原文件路径通过DragDrop.DoDragDrop方法传入,操作系统帮我们处理了文件复制操作。
上面的操作还是太简单,相当于只是对文件在操作系统层面进行了复制,如果要完成类似百度网盘的拖拽下载功能(如下图):

上面的功能,程序其实要做不少事情,需要监听拖放的路径,得到拖放路径后,就可以通过原文件网络路径进行下载了,建议阅读这篇文章,参考拖放下载文件操作:WPF拖拽文件(拖入拖出),监控拖拽到哪个位置,类似百度网盘拖拽。
另外,这篇文章对WPF的拖放写得也不做,建议阅读:WPF之DragDrop拖放实例。
时间如流水,只能流去不流回。
- 首发公众号:Dotnet9
- 作者:沙漠之尽头的狼
- 编辑于:成都,2020-12-01
C# WPF:这次把文件拖出去!的更多相关文章
- Wpf解决TextBox文件拖入问题、拖放问题
在WPF中,当我们尝试向TextBox中拖放文件,从而获取其路径时,往往无法成功(拖放文字可以成功).造成这种原因关键是WPF的TextBox对拖放事件处理机制的不同, 解放方法如下: 使用Previ ...
- WPF拖拽文件(拖入拖出),监控拖拽到哪个位置,类似百度网盘拖拽
1.往wpf中拖文件 // xaml <Grid x:Name="grid_11" DragOver="Grid_11_DragOver" Drop=&q ...
- WPF下载远程文件,并显示进度条和百分比
WPF下载远程文件,并显示进度条和百分比 1.xaml <ProgressBar HorizontalAlignment="Left" Height="10&quo ...
- HTML5文件拖拽
HTML5新增的File API, 可以获取名称.文件大小.类型等信息,需先对DOM中的Element进行拖拽事件绑定 相关API 首先获取节点,绑定拖动到该节点的事件,可以改变鼠标形状 var dr ...
- C# WPF 解压缩7zip文件 带进度条 sevenzipsharp
vs2013附件 :http://download.csdn.net/detail/u012663700/7427461 C# WPF 解压缩7zip文件 带进度条 sevenzipsharp W ...
- html5 文件拖拽上传
本文首先发表在 码蜂笔记 : http://coderbee.net/index.php/web/20130703/266 html5 文件拖拽上传是个老话题了,网上有很多例子,我一开始的代码也是网 ...
- c# 实现文件拖入和拖出(拖拽)
摘自:http://www.cnblogs.com/eaglet/archive/2009/01/06/1370149.html C# WinForm下一步一步实现文件的拖入和拖出 作者:Eaglet ...
- WPF中使用文件浏览对话框的几种方式
原文:WPF中使用文件浏览对话框的几种方式 WPF本身并没有为我们提供文件浏览的控件, 也不能直接使用Forms中的控件,而文件浏览对话框又是我们最常用的控件之一. 下面是我实现的方式 方式1: 使用 ...
- VC实现文件拖拽OnDropFiles
文章转自http://blog.csdn.net/zamaolangzi/article/details/5645284 使用过QQ的人都知道,只要把文件拖拽到消息框中就可以传送文件了.那么这种功能是 ...
- MFC 将文件拖进对话框获得文件信息
非常多软件都支持直接将文件拖进去进行处理的功能,详细一点如暴风影音,将视频或者音频文件拖进去就会自己主动開始播放,那么这个功能在MFC上面怎么实现的呢?事实上非常easy,过程例如以下: 第一步:将对 ...
随机推荐
- 量化交易的相对强弱(RSI )指标计算及策略
顾名思义,相对强弱指数 (RSI) 指标告诉我们资产的相对强弱.换句话说,RSI 告诉我们股票相对于自身的表现(或不表现).RSI 被视为一种强大的技术指标,可用于分析市场,并且是交易者武器库的重要组 ...
- keycloak~从login-status-iframe页面总结如何跨域传值~续
keycloak~从login-status-iframe相关文章,可阅读我的这两篇keycloak~从login-status-iframe页面总结如何跨域传值,keycloak~对接login-s ...
- ModuleNotFoundError: No module named '_pytest.resultlog'
新环境运行Python时报错 ModuleNotFoundError: No module named '_pytest.resultlog' 上网查,看到解决方法 https://www.cnbl ...
- 如何在LinkedIn上开发客户
LinkedIn作为一个职场社交平台,提供了许多开发外贸客户的机会和工具.通过在LinkedIn上建立个人和公司的专业形象.分享有价值的内容.参与行业社群和利用广告推广,您可以扩大您的业务网络,找到更 ...
- Windows Server 2016 Standard RemoteApp应用发布配置举例
RemoteApp 应用发布介绍 RemoteApp 是微软在Windows Server 2008 之后,在其系统中集成的一项服务功能,用户可以通过远程桌面访问远端服务器的桌面与程序,客户端本机在无 ...
- 用C#实现简单的线性回归
前言 最近注意到了NumSharp,想学习一下,最好的学习方式就是去实践,因此从github上找了一个用python实现的简单线性回归代码,然后基于NumSharp用C#进行了改写. NumSharp ...
- 从Bitcask存储模型谈超轻量级KV系统设计与实现
Bitcask介绍 Bitcask是一种"基于日志结构的哈希表"(A Log-Structured Hash Table for Fast Key/Value Data) Bitc ...
- static、final、private是否可以修饰抽象方法?
1.static和abstract:是不能共存的.static是为了方便调用,abstract是为了给子类重写,没有方法体. 2.final和abstract:是互相冲突的,final修饰的方法不能重 ...
- 华为云HBase冷热分离最佳实践
本文分享自华为云社区<华为云HBase 冷热分离最佳实践>,作者:pippo. HBase介绍 HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面 ...
- 手把手带你通过API创建一个loT边缘应用
摘要:使用API Arts&API Explorer调用IoT边缘服务接口创建应用,了解边缘计算在物联网行业的应用. 本文分享自华为云社区<使用API Arts&API Expl ...
