Drag & Drop в WPF

Функция Drag & Drop может значительно улучшить удобство использования программного обеспечения. Однако только некоторые программисты добавляют такую функциональность в свои приложения, потому что думают что это сложнее чем есть на самом деле. Эта статья покажет как просто реализовать Drag & Drop в WPF. Drag & Drop in 6 шагов:

  1. определяем начало drag с помощью событий MouseMove и MouseLeftButtonDown;
  2. определяем те данные, которые мы хотим "перетащить" и создаем DataObject, который будет содержать формат и данные;
  3. инициализируем перетаскивание с помощью вызова DoDragDrop();
  4. устанавливаем свойство AllowDrop=true для тех элементов, которые будут принимать данные;
  5. создаем обработчик события DragEnter для определения того, что над областью "приемника" происходит "перетаскивание". Если данные могут быть приняты установите свойство Effect у аргумента обработчика события;
  6. когда пользователь отпустит кнопку мыши, вызовется событие Drop. Получить данные можно с помощью метода e.Data.GetData()

Вот и вся магия.