WPF: переупорядочить содержимое WrapPanel с помощью перетаскивания?
Я ищу способ изменить порядок содержимого (элементов) WPF WrapPanel с помощью перетаскивания. Я просто хочу щелкнуть элемент и перетащить его на новую позицию.
Насколько я понимаю, это очень распространенная задача, и мне интересно, кто-то уже это сделал или не знает, как реализовать эту функциональность.
Я уже делал поиск по Google, но ничего не нашел. Может быть, это сложнее, чем я ожидал.
Ответы
Ответ 1
Я написал библиотеку, которая может помочь: поведение по умолчанию состоит в том, чтобы разрешить переупорядочение в пределах одного элемента управления:
http://code.google.com/p/gong-wpf-dragdrop/
А я замечаю, что вы говорите только об WrapPanel: вам нужно использовать ItemControl с WrapPanel:
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
Ответ 2
Панель обложки не даст вам функциональности, которую вы ищете, поскольку она предназначена только для макета. Вместо этого посмотрите на добавление функции перетаскивания и перетаскивания в ListBox и измените ItemPanelTemplate этого ListBox, чтобы использовать панель обертки.