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

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

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

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

2 ответов


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

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

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

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

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