GongSolutions.Wpf.DragDrop

Бесплатно
Открытый исходный код
Windows

Сайт: github.com/punker76/gong-wpf-dragdrop

GongSolutions.Wpf.DragDrop — библиотека для платформы WPF на .NET, предназначенная для упрощения внедрения функциональности перетаскивания (drag-and-drop) в XAML-приложениях. Библиотека предоставляет набор API, поведенческих расширений и утилит, позволяющих разработчикам минимизировать шаблонный код при организации перетаскивания элементов между контейнерами, внутри списков и при взаимодействии с элементами пользовательского интерфейса. Важной целью проекта является совместимость с шаблонами привязки данных и командами, применяемыми в архитектурах MVVM.

Проект включает реализацию интерфейсов и поведений, которые подключаются в XAML через прикрепляемые свойства и команды, а также обработку типичных сценариев: инициирование перетаскивания, определение допустимых операций (копирование, перемещение), визуальная подсветка целей и обработка конечных событий. Документация и примеры ориентированы на практическое использование в настольных приложениях, где требуется упорядочивание элементов списков, перенос элементов между коллекциями и интеграция с коллекциями ObservableCollection.

  • Подключение через XAML: поведенческие расширения и прикрепляемые свойства для быстрого включения перетаскивания на элементах управления без большого объёма кода в код‑бихайнд.
  • Поддержка MVVM: команды и события, совместимые с паттерном MVVM, позволяют обрабатывать логику перетаскивания в представлениях модели.
  • Работа с коллекциями: встроенная интеграция с коллекциями, включая перемещение и копирование элементов между ObservableCollection и другими источниками данных.
  • Определение целей и подсказок: механизмы определения допустимых целей, визуальная подсветка и пользовательские подсказки при наведении на целевые области.
  • Кастомизация поведения: возможность переопределять обработчики для контроля разрешённых операций, преобразования перетаскиваемых данных и обработки результата операции.
  • Поддержка сложных объектов: передача произвольных объектов данных при перетаскивании с возможностью настройки сериализации/форматов данных при необходимости.
  • Обработка клавиш-модификаторов: учёт состояния клавиш (например, Ctrl для копирования) при выполнении операций перетаскивания.
  • Совместимость с различными контролами: работа с элементами ItemsControl, ListBox, TreeView и другими элементами управления WPF.
  • Производительность и устойчивость: оптимизации для плавной работы при большом количестве элементов и встроенные проверки на консистентность операций.
  • Примеры и шаблоны: набор образцов использования и шаблонных решений для типичных задач перетаскивания в настольных приложениях.
Подробнее