2009-04-18 3 views
6

Мне бы хотелось создать простое winforms или приложение wpf, где я могу перетащить виртуальные «карты». это ниже не совсем то, что я хочу сделать, но это самое близкое, что я нашел в Интернете для представления пользовательского интерфейса.drag and drop в winforms или wpf

http://www.greenpeppersoftware.com/confluence/plugins/advanced/gallery-slideshow.action?imageNumber=1&pageId=24870977&decorator=popup&galleryTitle=Task+board+and+transitions

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

Мои вопросы:

  1. это было бы проще в WinForms или WPF
  2. , где я могу начать?

ответ

2

В обоих режимах winForms и WPF перетаскивание может быть выполнено аналогичным образом, работая с событиями на целевом DragOver и Drop.

Однако с WPF у вас есть другие возможности. Вы также сможете сделать приложение лучше, если вы перетащите миниатюру (это возможно в winforms, но сложнее достичь).

Посмотрите на this WPF sample, он использует класс-помощник и думает, что он делает именно то, что вам нужно.

0

В WPF, вероятно, будет немного легче из-за управления Thumb, которое обеспечивает удобную встроенную поддержку для перетаскивания. (Если я правильно помню, в WinForms вам нужно будет обрабатывать события мыши самостоятельно, тогда как WPF Thumb сделает это для вас и переведет их в начало, дельта и конец события перетаскивания.)

Однако, если вы более знакомы с одной структурой, кроме другой, вероятно, будет затмевать разницу, которую будет делать контроль Thumb.

Вы также должны осмотреть инструментальные средства/фреймворки, которые могли бы справиться с этим для вас - я думаю, что они существуют как для WinForms, так и для WPF (не уверен, хотя).

2

Я согласен с Джоном в том, что WinForms и WPF довольно близки друг к другу w.r.t. drag'n'drop. Но WPF предлагает больше «общей базы» для ItemsControl, позволяя реализовать более независимые от конечных элементов пользовательского интерфейса (ListBox, ListView, TreeView ... можно легко переключить). И, очевидно, WPF позволяет гораздо больше причудливых эффектов.

Я настоятельно рекомендую этот блог: http://www.beacosta.com/blog/?p=53 как для некоторых основ перетаскивания и для чистого drag'n'drop подхода WPF. Он показывает хорошую реализацию довольно универсального помощника для drag'n'drop из/в WPF ItemsControls, мне очень нравится этот «Вставной Adorner». И мне нравится, что код drag'n'drop красиво отделен от самого пользовательского элемента управления, используя прикрепленные свойства, что делает его намного проще в использовании и обслуживании.

0

Хороший способ для Darg и падения объясняются

Обнаружить сопротивление как combinatination из MouseMove и MouseLeftButtonDown

Найти данные, которые вы хотите, чтобы перетащить и создать DataObject, который содержит формат, данные и разрешенные эффекты.

Инициировать увлекая по телефону DoDragDrop()

Установите свойство AllowDrop Истины на элементы, которые вы хотите, чтобы падать.

Зарегистрируйте обработчик события DragEnter, чтобы обнаружить перетаскивание по месту падения. Проверьте формат и данные, вызвав GetDataPresent() в аргументах событий. Если данные можно отбросить, установите свойство Effect в аргументах событий, чтобы отобразить соответствующий указатель мыши.

Когда пользователь отпускает кнопку мыши, вызывается событие DragDrop. Получите данные, вызвав метод GetData() в объекте Data, представленном в аргументах событий.

Вы можете найти полный текст статьи here