Как изменить порядок элементов с помощью перетаскивания внутри большого вертикального списка с сохранением возможности вертикальной прокрутки?

Есть много советов по перетаскиванию на Windows Phone, но в настоящее время я не могу собрать все вместе. Поэтому я надеюсь, что вы дадите мне несколько советов по достижению моей цели: Отображение прокручиваемого списка элементов с хорошим переупорядочиванием и прокруткой.

Я использую StackPanel для представления вертикального списка элементов управления . Допустим, эти элементы управления представляют собой флажки , отображающие некоторую информацию (на самом деле я создал немного более сложные настраиваемые элементы управления). Элементов может быть много, поэтому я поместил ScrollViewer вокруг StackPanel , чтобы пользователь мог прокручивать вверх и вниз. Но теперь я также хочу дать пользователю возможность переупорядочить элементы управления в списке с помощью перетаскивания.

Мне непонятно несколько вещей:

  1. Как включить функцию Перетаскивание в StackPanel? (Таким образом, он выглядит гладким, а элементы меняют положение в анимированном, приятном на вид виде; они должны оставлять место для вставляемого элемента, пока пользователь его перетаскивает.)
  2. Как я могу этого добиться. что пользователь может вертикально прокручивать список , сохраняя при этом возможность перетаскивать элементы? (Я думаю, что на каждом элементе, который пользователь должен перетащить, может быть специальная «точка перетаскивания», чтобы я мог различать перетаскивание и прокрутку. )
  3. Как мне автопрокрутить список, когда пользователь перетаскивает один элемент на верхнюю или нижнюю границу, если список больше экрана?
  4. Это правильная комбинация элементов управления ? Есть лучший? (Но я не хочу вычислять позиции элементов вручную.)

Я хотел бы услышать ваши идеи по этой теме, любая помощь приветствуется!

6
задан Heinrich Ulbricht 22 April 2011 в 17:59
поделиться