Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
 Drag & Drop  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 4042
Задача стоит след. есть некий котрол его надо перетащить и бросить на другой. При этом элемент при захвате должен двигаться вместе с курсором.
Погуглил, посмотрел у кого как это реализовано.
увидел 2а основных направления:
1. элемент при перетаскивании отображается в виде окна и прямоугольника с VisualBrush
2. элемент при перетаскивании в контроле который размещается в Adorner окна.

позиционирование этих элементов осуществляется через получение позиции курсора на экране и в событии Feedback объекта который инициировал захват можно перемещать их под курсор.

Преимущество 1 метода над 2ым заключается в том, что элемент можно перетащить за пределы окна.

Но у меня с этим методом возникла загвоздка, так как хватаю я контрол за его "середину" то окно размещается со смещением "точки хватания" и находится как бы под курсором (и не как бы, а там и находится).
Соответственно тот контрол который ожидает получить событие DragOver ничего не получает, так как курсор находится не над ним, а мною созданным окном с содержимым перетаскивания. IsHitTestVisible для окна ничего не меняет.
Если окно разместить правее от курсора, всё нормально.
Как решить эту проблему?
если у вас есть какие то примеры Drag&Drop'а для WPF более или менее адекватные, буду рад если скините ссылку.
22 янв 15, 17:51    [17155940]     Ответить | Цитировать Сообщить модератору
 Re: Drag & Drop  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 6036
Roman Mejtes,

я некогда под свои нужды адаптировал джошесмитовский DragDropManager, описанный вот здесь: http://www.codeproject.com/Articles/17266/Drag-and-Drop-Items-in-a-WPF-ListView (в моем случае нужно было сделать драг-дроп табов табконтрола). Это как раз пример с адорнером, но мне нужно было таскать элемент за пределы окна.
22 янв 15, 18:11    [17156053]     Ответить | Цитировать Сообщить модератору
 Re: Drag & Drop  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 6036
Да, был еще случай, когда надо было драг-дропать файлы - помогла вот эта статья: http://blogs.msdn.com/b/adamroot/archive/2008/02/19/shell-style-drag-and-drop-in-net-wpf-and-winforms.aspx
22 янв 15, 18:13    [17156057]     Ответить | Цитировать Сообщить модератору
Все форумы / WPF, Silverlight Ответить