在 Windows Phone 8.1 ListView 中重新排序

Reordering in Windows Phone 8.1 ListView

我有一个 Windows Phone 8.1 ListView。我想重新排序 ListView 中的项目。我想在长按上启动重新排序模式,我可以通过点击项目 Holding 事件并更改 ListViews ReorderModeEnabledListView 看起来像这样

1.有没有办法让 "select" 和 item 准备好被拖动? 所以 ListView 看起来像这样?我找不到任何 属性 或任何使它成为 "selected" 的东西。用户选择他发起重新订购的项目会好得多。

2。有没有办法知道用户将物品放到了另一个地方(是否重新订购)? 我想我可以通过使用 ListView 上的 DragOverDragLeaving 事件来完成它,但是当重新排序模式被禁用时它们会被触发,而不是当项目被放到另一个位置时。

3。有没有办法缩小重新排序模式下项目之间的差距? 我找到了 ListViewItemReorderHintThemeOffset 资源,但更改它(直接或编辑 ListViewItem 的样式)没有任何效果改变。

1 和 2:

您需要捕获ListItem的PointerPressed事件,或者在ItemTemplate的DataTemplate中。

然后将 ReorderMode 设置为已启用:

        if (ListView != null && ListView.ReorderMode != ListViewReorderMode.Enabled)
        {
            ListView.ReorderMode = ListViewReorderMode.Enabled;
        }