Перетащите на рабочий стол / проводник
По моему сценарию.
Я получил приложение, которое загружает файловую структуру (папки, файлы) из базы данных в WPF ListView. Теперь я хотел бы получить файл из этого ListView, перетащить его на рабочий стол (или в какое-нибудь открытое окно проводника) и поместить туда. Основные Drag and Drop, ничего особенного. Это звучит как "стандартная" функция для приложения Windows - но Google не поможет.
Так как же мне этого добиться? Interops?
Спасибо
Редактировать: Спасибо за решение, мне все еще нужно было немного поискать в Google. Вот мое полное решение.
1 ответ
DragDrop.DoDragDrop
можете сделать это, если вы передадите DataObject
,
Сначала скопируйте файлы куда-нибудь. Ты можешь использовать System.IO.Path.GetTempPath()
если у тебя нет лучшего места.
Затем создайте строковый массив, содержащий полные пути к файлам, и выполните следующие действия:
string[] paths = ...;
DragDrop.DoDragDrop(this, new DataObject(DataFormats.FileDrop, paths),
DragDropEffects.Copy);
На самом деле это можно сделать без предварительного копирования файлов, но это приводит к некоторым сложным взаимодействиям IDataObject, поэтому, если ваши файлы потенциально очень велики и еще не находятся в файловой системе, я сначала попробую этот метод.