|
Drag & Drop
|
|||
---|---|---|---|
#18+
Задача стоит след. есть некий котрол его надо перетащить и бросить на другой. При этом элемент при захвате должен двигаться вместе с курсором. Погуглил, посмотрел у кого как это реализовано. увидел 2а основных направления: 1. элемент при перетаскивании отображается в виде окна и прямоугольника с VisualBrush 2. элемент при перетаскивании в контроле который размещается в Adorner окна. позиционирование этих элементов осуществляется через получение позиции курсора на экране и в событии Feedback объекта который инициировал захват можно перемещать их под курсор. Преимущество 1 метода над 2ым заключается в том, что элемент можно перетащить за пределы окна. Но у меня с этим методом возникла загвоздка, так как хватаю я контрол за его "середину" то окно размещается со смещением "точки хватания" и находится как бы под курсором (и не как бы, а там и находится). Соответственно тот контрол который ожидает получить событие DragOver ничего не получает, так как курсор находится не над ним, а мною созданным окном с содержимым перетаскивания. IsHitTestVisible для окна ничего не меняет. Если окно разместить правее от курсора, всё нормально. Как решить эту проблему? если у вас есть какие то примеры Drag&Drop'а для WPF более или менее адекватные, буду рад если скините ссылку. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 17:51 |
|
Drag & Drop
|
|||
---|---|---|---|
#18+
Roman Mejtes, я некогда под свои нужды адаптировал джошесмитовский DragDropManager, описанный вот здесь: http://www.codeproject.com/Articles/17266/Drag-and-Drop-Items-in-a-WPF-ListView (в моем случае нужно было сделать драг-дроп табов табконтрола). Это как раз пример с адорнером, но мне нужно было таскать элемент за пределы окна. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 18:11 |
|
Drag & Drop
|
|||
---|---|---|---|
#18+
Да, был еще случай, когда надо было драг-дропать файлы - помогла вот эта статья: http://blogs.msdn.com/b/adamroot/archive/2008/02/19/shell-style-drag-and-drop-in-net-wpf-and-winforms.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2015, 18:13 |
|
|
start [/forum/topic.php?fid=21&fpage=19&tid=1440957]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
73ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
3ms |
others: | 13ms |
total: | 178ms |
0 / 0 |