Wpf dragdrop, как визуально отклонить отбрасывание во время перетаскивания?

Для.NET Вы могли использовать что-то как TypeMock, который использует профильный API и позволяет Вам сцепляться в вызовы с почти чем-либо.

5
задан Dave Clemmer 25 August 2011 в 17:46
поделиться

1 ответ

Просто установка DragDropEffects в DragEnter цели перетаскивания должна работать. Ваш DragEnter вообще звонят? Вы установили AllowDrop для целевого элемента управления перетаскиванием?

Это последовательность событий во время перетаскивания в WPF (взято из MSDN), которая может помочь понять, что происходит ...

  1. Перетаскивание инициируется вызовом метод DoDragDrop для исходного элемента управления.

    Метод DoDragDrop принимает два параметра: * data, определяющий данные для передачи * allowedEffects, указывающая, какие операции (копирование и / или перемещение) разрешены

    Новый объект DataObject создается автоматически.

  2. Это, в свою очередь, вызывает событие GiveFeedback. В большинстве случаев вам не нужно беспокоиться о событии GiveFeedback, но если вы хотите отображать пользовательский указатель мыши во время перетаскивания, вы должны добавить свой код именно сюда.
  3. Любой элемент управления, для свойства AllowDrop которого установлено значение True, является потенциальная цель падения. Свойство AllowDrop можно задать в окне «Свойства» во время разработки или программно в событии Form_Load.
  4. Когда мышь проходит над каждым элементом управления, возникает событие DragEnter для этого элемента управления. Метод GetDataPresent используется, чтобы убедиться, что формат данных соответствует целевому элементу управления, а свойство Effect используется для отображения соответствующего указателя мыши.
  5. Если пользователь отпускает кнопку мыши над допустимой целью перетаскивания, возникает событие DragDrop. Код в обработчике событий DragDrop извлекает данные из объекта DataObject и отображает их в целевом элементе управления.
6
ответ дан 14 December 2019 в 13:40
поделиться
Другие вопросы по тегам:

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