Kim Togo Ответов: 2

Событие Drag & Drop, WPF vs WinForm


У меня есть эта странная проблема в событиях Drag &Drop, которую я не могу понять.

Я пытаюсь заставить Drag & Drop работать в моем простом простом приложении WPF.
Если я перетаскиваю карточку контакта из Microsoft Lync 2010 в свою программу WPF, то мне это не разрешается.

В моем приложении WPF нет события "DragEnter", "DragOver" или "Drop".
Но если я делаю перетаскивание из таких приложений, как Word, Internet Explorer или Google Chrome, он работает нормально. Я получаю события "DragEnter", "DragOver" и "Drop".

Проводная часть приходит сейчас Если я делаю то же самое в приложении WinForm, оно работает так, как ожидалось, когда я перетаскиваю карточку контакта из Microsoft Lync.

Я чувствую, что мне нужно что-то настроить в моем приложении WPF, возможно, какую-то низкоуровневую отладку ?

- В моих WPF и WinForm я установил "AllowDrop" в true
В событии "DragOver" я установил e.Effects = DragDropEffects.Copy и e.Handled = true.

Gerry Schmitz

Возможно, WPF не "распознает" "контактную карту".

Документами Word, листами Excel, в HTML-документы практически "универсальный"; не какой-то "контакт".

2 Ответов

Рейтинг:
1

earloc

а что вы пробовали? когда вы говорите: "нет события DragEnter и т. д. в вашем приложении", куда вы смотрели?

Например, в окне есть такие события, как "DragEnter", "DragLeave" и т. д., Но они не будут вызваны, если "AllowDrop" имеет значение false. Это твоя проблема?

EDIT1: случайно опубликовал это как решение - оно было задумано как комментарий...


Kim Togo

В моем WPF и у меня есть набор "AllowDrop" "true", а есть приставка все события на "события dragenter", "dragover встречает", "DragLeave" и "капля"

В моем событии "DragOver" я установил e.Effects = DragDropEffects.Copy и e.Handled = true.
Но все равно никакие события "DragEnter", "DragOver" не срабатывают, когда я делаю перетаскивание из Microsoft Lync.

Если я делаю перетаскивание из Internet Explorer, он работает так, как ожидалось.

earloc

Ладно, это действительно кажется странным. Но полное поведение перетаскивания-это отдельная глава с самого начала...WPF, к сожалению, ничего не делает для того, чтобы сделать это событие-hazzle немного более дружелюбным к программистам (по крайней мере, не OOTB).
Я бы проверил, поддерживается ли ваш параметр DragDropEffect операцией Lync-Drag (например, изучив свойство AllowedEffects-DragEventArgs).

Также попробуйте подключиться к событию GiveFeedback.

К сожалению, я не могу больше помочь в этом вопросе.

Kim Togo

Привет Эрлок
Я очень ценю вашу помощь.

И о том, что "я бы проверил, поддерживается ли DragDropEffect, который вы устанавливаете, операцией Lync-Drag (например, изучив свойство AllowedEffects-DragEventArgs)."

Моя проблема заключается в том, что в моем приложении WPF не генерируются события перетаскивания. Но в WinForm это работает.

Рейтинг:
1

Kim Togo

Решением этой проблемы стало обновление Microsoft Lync 2010 от Microsoft.