WPF实现窗体接收鼠标拖拽的文件例子

编程开发
500
WPF
窗体接收外部文件
拖拽文件

WPF实现窗体接收鼠标拖拽的文件例子

这个功能的逻辑,从窗口外部拖文件到窗口内部并自动捕获文件地址 然后然后对文件进行后续处理;

1.新建一个WPF 项目

WPF实现窗体接收外部鼠标点击拖拽的文件

2.后台添加文件监听代码

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.Loaded += MainWindow_Loaded;
        }

        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            this.Drop += MainWindow_Drop;//接收拖拽的文件
            this.DragEnter += MainWindow_DragEnter;//用来设置拖拽的文件效果
            this.AllowDrop = true;//允许窗体Drop事件 注意默认是false(也就是不能进行拖文件进入操作)
        }

        private void MainWindow_DragEnter(object sender, DragEventArgs e)
        {

            if (e.Data.GetDataPresent(DataFormats.FileDrop))
                e.Effects = DragDropEffects.Link;   
            else e.Effects = DragDropEffects.None; 
        }

        private void MainWindow_Drop(object sender, DragEventArgs e)
        {
	     	//拖拽的文件路径
            string fileName = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
            MessageBox.Show($"接收到文件 {fileName}");
        }
    }

实现效果

WPF实现窗体接收外部鼠标点击拖拽的文件

需要注意的是 当你的程序的启动权限高于当前用户权限时 此功能无效(例如管理员身份启动时 如果当前用户非管理员账户 则收不到拖拽文件的请求响应)

一次使用AutoResetEvent的经历:在Task并发环境下导致UI线程卡死 内存一直上涨
WPF桌面程序开发怎么实现鼠标窗体穿透点击桌面
在.NET CORE\.NET 5 下WPF如何实现托盘图标功能
WPF中某一个控件绑定其他指定UI控件的属性值
.NET 5 WPF 如何开启控制台界面用于实时输出日志
.NET程序系统托盘运行出现多个同样的托盘图标的解决方法
Windows桌面开发优秀的WPF界面开源UI组件 MahApps.Metro
WPF 设置程序不允许同一类程序多开进程
WPF引用CommunityToolkit.Mvvm实现属性变动双向绑定的简单例子
WPF使用popup控件实现弹出式提示
WPF文本框控件RichTextBox实现MVVM绑定数据源
WPF去除标题栏 实现窗体的缩放及拖动效果
暂无相关内容...
C#+WPF实现模仿实现的网易云音乐客户端源码
WPF实现的自定义工作大日历排班Calendar控件模板的例子源码
wpf实现大屏幕弹幕播放效果特效源码新手可参考下.rar
[人脸检测]基于C#OpenCvSharp+haarcascade人脸、人眼模型实现人脸检测源码
WPF实现读取USB摄像头实时视频展示以及导出实时截图的C#源码例子
免责声明 部分转载分享内容若侵犯您的权益,还请 邮件联系 侵删