Перетаскивание WPF DragDropЭффекты, изменяющиеся при выходе из окна WPF - PullRequest
1 голос
/ 06 июня 2019

У меня есть приложение WPF, куда я перетаскиваю объект файла.Его можно перетащить либо в несколько окон внутри приложения, либо извне в Проводник и на рабочий стол и в несколько других мест.

Операция перетаскивания работает нормально, но эффект DragDropEffect правильно отображается только внутриОкно приложения.Когда курсор перемещается за пределы окна приложения, я получаю значок «verboten» - большую часть времени.В зависимости от того, как курсор покидает приложение большую часть времени, я получаю вырезанный круг.Но иногда он правильно продолжает перетаскивание со значком копирования.

var files = new[] {editor.MarkdownDocument.Filename} ;
var dragData = new DataObject(DataFormats.FileDrop,files);

DragDrop.DoDragDrop(tab, dragData, DragDropEffects.Copy);

Как уже упоминалось, код и обработка оболочкой работают правильно - файл копируется, проблема заключается только в значке перетаскивания.

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

Итак, как мне контролировать значок перетаскивания, надежно внешний по отношению к WPF?

1 Ответ

0 голосов
/ 06 июня 2019

https://docs.microsoft.com/en-us/dotnet/api/system.windows.dragdrop.givefeedback

DragDrop.GiveFeedback += SetTheCursorHere;

Вам следует (в соответствии с документацией Microsoft) кэшировать курсор и т. Д., Поскольку он вызывается снова и снова при перетаскивании, и вы не хотите загружать ресурс при его перетаскивании.

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