Функция Drag & Drop может значительно улучшить удобство использования программного обеспечения. Однако только некоторые программисты добавляют такую функциональность в свои приложения, потому что думают что это сложнее чем есть на самом деле. Эта статья покажет как просто реализовать Drag & Drop в WPF. Drag & Drop in 6 шагов:
- определяем начало drag с помощью событий MouseMove и MouseLeftButtonDown;
- определяем те данные, которые мы хотим "перетащить" и создаем DataObject, который будет содержать формат и данные;
- инициализируем перетаскивание с помощью вызова DoDragDrop();
- устанавливаем свойство AllowDrop=true для тех элементов, которые будут принимать данные;
- создаем обработчик события DragEnter для определения того, что над областью "приемника" происходит "перетаскивание". Если данные могут быть приняты установите свойство Effect у аргумента обработчика события;
- когда пользователь отпустит кнопку мыши, вызовется событие Drop. Получить данные можно с помощью метода e.Data.GetData()
Вот и вся магия.