диалоговое окно имитации файла - PullRequest
0 голосов
/ 27 октября 2011

Мне нужно добавить в свое приложение место, где пользователи могут удалять файлы, и они выглядят так же, как при перетаскивании файлов в папку на окнах.в здесь есть программа, которая обладает необходимой мне функциональностью, но она написана с использованием форм Windows, и я использую wpf.так что эта программа великолепна, потому что в ней есть те особенности, которые мне нужны.позвольте мне перечислить функции:

1) Я могу получить те же значки, что и на моем рабочем столе.

2) Я могу перетаскивать папки и файлы в другую сторону.обратите внимание, как я перетаскиваю папку с библиотеками на картинке

enter image description here

3), когда я щелкаю правой кнопкой мыши по файлу, я получаю то же контекстное меню, что и на окнах

enter image description here

4) Я могу перетаскивать файлы и папки.

enter image description here

обратите внимание, что диалоговое окно файла примера было создано с использованием оконных форм иисходный код можно скачать по первой предоставленной мной ссылке.

Я не хочу создавать файловый диалог, в противном случае я буду использовать класс openFileDialog.Мне нужно вставить границу в мое приложение wpf, где пользователи могут перетаскивать и выбирать файлы.также они могут перетаскивать файлы извне и открывать файлы оттуда.

Итак, это 4 вещи, которые мне нужно добавить в мое приложение wpf, позвольте мне описать вещи, которые я сделал, чтобы попытаться решить каждый метод.

1)

Я пытался найти так много разных мест, чтобы получить код, необходимый для извлечения значков из файлов, и они никогда не выглядят так же, как на рабочем столе.Я пробовал: это и это тоже и некоторые другие, которые я не могу вспомнить прямо сейчас.

обратите внимание, что этот шаг будет легким. Меня больше интересуют другие функции

2)

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

3)

Я понятия не имею, какреализовать эту функцию.

4)

, который один легко.Единственная сложность заключается в том, что иногда вы можете перетаскивать файлы с отдельного диска, такого как флэш-накопитель, и у вас должен быть способ для его копирования.или, может быть, вы перетащите ссылку из меню Пуск Windows.

Может быть, я могу использовать функциональность диалогового окна.Мне кажется, мне не нужно изобретать велосипед.Я не очень разбираюсь в формах окон, поэтому мне сложно реализовать этот код в wpf.

1 Ответ

0 голосов
/ 27 октября 2011

Вам нужно повторно использовать элементы управления из Windows, а из .NET к ним можно получить доступ через Windows API Code Pack

Взгляните на раздел Windows Shellпакет кода и, в частности, элемент управления обозревателя, который должен предоставить вам все необходимые функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...