2010-01-28 3 views
3

У меня здесь странная проблема. Я создал простой плагин с помощью мастера для проекта интеграции Visual Studio/VSIX с помощью окна инструмента. Внутри этого окна я хочу сделать простое перетаскивание из списка и отбросить его в том же окне. Я сделал то же самое в обычной программе WPF, но когда я это делаю в WSwindow, это запрещено. Я запускаю операцию перетаскивания (инициируется событием PreviewMouseLeftButtonDown) и вызывает метод DragDrop.DoDragDrop(). Я получаю курсор стоп-сигнала сразу. Разрешено перетаскивание.Drag Drop внутри WPF ToolWindow в VS2010 Расширение не разрешено

Любые идеи? Ограничения безопасности или влияние того факта, что эти элементы управления WPF размещены внутри ToolWindowPane и старой среды Visual Studio IDE COM, я думаю ... Спасибо за любую помощь!

+0

То же самое просто ударил меня. – Will

ответ

5

Alin Constantin at Microsoft помог мне здесь и даже написал сообщение в блоге о том, как сделать перетаскивание в VS2010 правильно!

http://alinconstantin.blogspot.com/2010/02/drag-and-drop-in-visual-studio-2010.html


Highlights, в случае ссылки гнили:

В окне инструмент (UserControl), переопределить OnDragEnter, OnDragOver (важно!) И OnDrop. Отказ от переопределения OnDragOver приведет к сбою перетаскивания.

В OnDragEnter, сделайте следующее:

  1. Проверьте, чтобы увидеть, если вы можете справиться падение
  2. Если это так, установите DragEventArgs.Handled в true и DragEventArgs.Effects соответствующее значение
  3. Вызов base.OnDragEnter()

В OnDragOver вы должны сделать тот же предмет как OnDragEnter. Если вам не удастся установить Handled, Visual Studio возьмет верх, и вы не сможете справиться с этой проблемой!

В OnDrop,

  1. Ручка падение
  2. Установите DragEventArgs.Handled в true
  3. Позвоните base.OnDrop()

Remember, не обрабатывает OnDragOver приведет к Visual Studio, принимая за операции перетаскивания, отказывая вам в возможности справиться с этим в OnDrop.

 Смежные вопросы

  • Нет связанных вопросов^_^