Просто установка DragDropEffects в DragEnter цели перетаскивания должна работать. Ваш DragEnter вообще звонят? Вы установили AllowDrop для целевого элемента управления перетаскиванием?
Это последовательность событий во время перетаскивания в WPF (взято из MSDN), которая может помочь понять, что происходит ...
Перетаскивание инициируется вызовом метод DoDragDrop для исходного элемента управления.
Метод DoDragDrop принимает два параметра:
* data, определяющий данные для передачи
* allowedEffects, указывающая, какие операции (копирование и / или перемещение) разрешены
Новый объект DataObject создается автоматически.
- Это, в свою очередь, вызывает событие GiveFeedback. В большинстве случаев вам не нужно беспокоиться о событии GiveFeedback, но если вы хотите отображать пользовательский указатель мыши во время перетаскивания, вы должны добавить свой код именно сюда.
- Любой элемент управления, для свойства AllowDrop которого установлено значение True, является потенциальная цель падения. Свойство AllowDrop можно задать в окне «Свойства» во время разработки или программно в событии Form_Load.
- Когда мышь проходит над каждым элементом управления, возникает событие DragEnter для этого элемента управления. Метод GetDataPresent используется, чтобы убедиться, что формат данных соответствует целевому элементу управления, а свойство Effect используется для отображения соответствующего указателя мыши.
- Если пользователь отпускает кнопку мыши над допустимой целью перетаскивания, возникает событие DragDrop. Код в обработчике событий DragDrop извлекает данные из объекта DataObject и отображает их в целевом элементе управления.
ответ дан 14 December 2019 в 13:40
поделиться