从 WPF 应用程序拖动文件

Drag file from WPF App

我发现很多示例都描述了如何从 WPF 应用程序中拖动文件。当用户尝试拖动列表框项目时,我只需要从我的应用程序导出 .txt 或 .csv 文件。

var filestream = File.Create(@"C:\Users\myuser\Documents\test.txt");
var barray = Encoding.Unicode.GetBytes("Some text");
filestream.Write(barray, 0, barray.Length);
//filestream.Close();
DataObject data = new DataObject(DataFormats.FileDrop, filestream);
DragDrop.DoDragDrop(this, data, DragDropEffects.Copy);
//filestream.Close();

但如果我在桌面上发布,则不会复制任何文件。怎么了?

文件删除不起作用的原因是您没有提供此剪贴板格式所要求的文件路径列表。要解决此问题...

var filename = @"C:\Users\myuser\Documents\test.txt"
var filenames = new string[] { filename };
var filestream = File.Create(filename);
var barray = Encoding.Unicode.GetBytes("Some text");
filestream.Write(barray, 0, barray.Length);
filestream.Close();

DataObject data = new DataObject(DataFormats.FileDrop, filenames);
DragDrop.DoDragDrop(this, data, DragDropEffects.Copy);