本站大部分功能不支持IE浏览器,请使用谷歌内核的浏览器进行访问。

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

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实现窗体接收外部鼠标点击拖拽的文件

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

转载请注明原链接: https://www.yuantk.com/weblog/32af0a49-8c44-4b96-b337-0160520e7a9f.html