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

В соответствии с моим сценарием.

Я получил Приложение, которое загружает Filestructure (Папки, Файлы) от Базы данных в WPF ListView. Теперь я хотел бы захватить файл от этого ListView, перетащить его по моему Рабочему столу (или некоторое открытое окно проводника) и отбросить его там. Основное Перетаскивание, ничто не полагает. Это походит на "стандартную" функцию для приложения Windows - но Google не поможет.

Таким образом, как я могу достигнуть этого? Interops?

Спасибо

Править: Спасибо за решение я все еще должен был сделать некоторый поиск с помощью Google. Вот мое полное решение.

30
задан H.B. 11 September 2011 в 17:58
поделиться

1 ответ

DragDrop.DoDragDrop может сделать это, если вы передадите ему соответствующий DataObject.

Сначала скопируйте файлы куда-нибудь. Вы можете использовать System.IO.Path.GetTempPath(), если у вас нет лучшего места.

Затем создайте строковый массив, содержащий полные пути к файлам, и выполните следующие действия:

string[] paths = ...;
DragDrop.DoDragDrop(this, new DataObject(DataFormats.FileDrop, paths),
                    DragDropEffects.Copy); 

На самом деле это можно сделать и без предварительного копирования файлов, но при этом возникают сложные взаимодействия с IDataObject, поэтому, если ваши файлы потенциально не очень большие и еще не находятся в файловой системе, я бы сначала попробовал этот метод.

28
ответ дан 28 November 2019 в 00:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: