Подтвердить что ты не робот

WPF: переупорядочить содержимое WrapPanel с помощью перетаскивания?

Я ищу способ изменить порядок содержимого (элементов) WPF WrapPanel с помощью перетаскивания. Я просто хочу щелкнуть элемент и перетащить его на новую позицию.

Насколько я понимаю, это очень распространенная задача, и мне интересно, кто-то уже это сделал или не знает, как реализовать эту функциональность.

Я уже делал поиск по Google, но ничего не нашел. Может быть, это сложнее, чем я ожидал.

4b9b3361

Ответ 1

Я написал библиотеку, которая может помочь: поведение по умолчанию состоит в том, чтобы разрешить переупорядочение в пределах одного элемента управления:

http://code.google.com/p/gong-wpf-dragdrop/

А я замечаю, что вы говорите только об WrapPanel: вам нужно использовать ItemControl с WrapPanel:

<ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
        <WrapPanel />
    </ItemsPanelTemplate>
</ItemsControl.ItemsPanel>

Ответ 2

Панель обложки не даст вам функциональности, которую вы ищете, поскольку она предназначена только для макета. Вместо этого посмотрите на добавление функции перетаскивания и перетаскивания в ListBox и измените ItemPanelTemplate этого ListBox, чтобы использовать панель обертки.