Алин Константин из Microsoft помог мне здесь и даже написал пост в блоге о том, как правильно выполнять перетаскивание в VS2010!
http://alinconstantin.blogspot.com/2010/02/drag-and-drop-in-visual-studio-2010.html
Основные моменты, в случае гниения ссылки:
В вашем окне инструментов (UserControl) переопределите OnDragEnter
, OnDragOver
( важно! ) и OnDrop
. Неспособность переопределить OnDragOver
приведет к сбою перетаскивания.
В OnDragEnter
выполните следующее:
- Проверьте, можете ли вы справиться с падением
- Если это так, установите
DragEventArgs.Handled
на true
и DragEventArgs.Effects
на соответствующее значение
- Звоните
base.OnDragEnter()
В OnDragOver
вы должны сделать то же самое , что и OnDragEnter
. Если вам не удастся установить Handled
, Visual Studio вступит во владение, и вы не сможете справиться с падением!
В OnDrop
,
- Обработка капли
- Установите
DragEventArgs.Handled
на true
- Звоните
base.OnDrop()
Помните, что не обработка OnDragOver
приведет к тому, что Visual Studio примет операцию перетаскивания, лишив вас возможности обрабатывать ее в OnDrop
.