Я не совсем уверен, если вы спрашиваете "Как реализовать Drag & Drop?" или «Как предотвратить падение пользователя в любое место, кроме указанного места?», поэтому я попытаюсь дать некоторые подсказки об обоих.
Как реализовать Drag & Drop?
Чтобы получить базовую функциональность перетаскивания, вы должны сделать что-то вроде этого:
Установите для свойства AllowDrop желаемой цели перетаскивания значение true.
Подключите OnMouseMove и MouseLeftButtonDown, чтобы можно было определить начало операции D & D. (это события в System.Windows.UIElement)
Подключить для OnPreviewDragEnter, OnPreviewDragLeave, OnPreviewDragOver, OnPreviewDrop (это события в System.Windows.DragDrop)
Затем вы слушаете OnMouseMove и MouseLeftButtonDown, пока пользователь не инициализирует операцию перетаскивания (т. Е. Переместит либо SystemParameters.MinimumHor horizontalDragDistance или SystemParameters.MinimumVerticalDragDistance wide, пока нажата левая кнопка мыши)
На этом этапе вам придется инициализировать операцию D & D с помощью DragDrop.DoDragDrop
После инициализации вы будете прослушивать все перечисленные выше события перетаскивания, но для получения основных функций достаточно прослушать OnPreviewDrop.
Как предотвратить падение пользователя в любое место, кроме указанного места?
После того, как вы внедрили функциональность D & D, довольно просто добиться этого. Просто проверьте, является ли отправитель OnPreviewDrop текущей активной целью удаления, и проигнорируйте событие удаления, если это не так.
Подробнее
Чтобы найти более подробную информацию, посетите этот Обзор перетаскивания .
Поскольку это игра, которую вы, вероятно, хотели бы отображать перетаскиваемым содержимым во время перетаскивания, вы можете добиться этого с помощью adorners . Приведенный пример недостаточно охватывает предварительный просмотр перетаскиваемого изображения, но в Google приведено много хороших примеров по теме.