Перетащите на рабочий стол / проводник

По моему сценарию.

Я получил приложение, которое загружает файловую структуру (папки, файлы) из базы данных в 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, поэтому, если ваши файлы потенциально очень велики и еще не находятся в файловой системе, я сначала попробую этот метод.

Другие вопросы по тегам