UWP GridView/ListView拖放响应特性是否支持自定义修改?
UWP ListView/GridView 拖放重排序手感调整方案求助
我需要修改UWP平台ListView和GridView内置拖放逻辑的两项默认视觉/交互表现,当前默认实现存在两个明显影响操作手感的问题:
- 重排序动画触发延迟过高:拖拽项移动到目标项位置后,需要悬停数百毫秒才会开始播放重排序位移动画
- 重排序触发的拖拽位移阈值过大:小尺寸列表项场景下该问题不明显,但对于常规尺寸尤其是
GridView的大尺寸项来说,需要拖动较长距离才会触发重排序判定,问题非常突出
两个问题叠加后,拖放操作的整体手感十分迟滞卡顿,甚至经常出现相邻项识别混淆的情况。
如果该调整具备可行性,我希望实现完全移除动画启动延迟、缩短拖拽触发阈值距离的效果,但目前没有找到任何公开属性可以控制这两项表现。我已经尝试过以下方案,均没有效果:
- 移除或修改控件内置的主题过渡动画效果
- 调整控件、列表项的尺寸、
Margin、Padding等各类布局属性的组合 - 测试不同选择模式、所有拖拽/重排序相关属性的不同取值搭配
复现示例
以下最简代码可在Win10、Win11环境下稳定复现该默认行为:
<GridView CanDragItems="True" CanReorderItems="True" AllowDrop="True"> <Rectangle Height="100" Width="100" Fill="Red"/> <Rectangle Height="100" Width="100" Fill="Blue"/> <Rectangle Height="100" Width="100" Fill="Green"/> <Rectangle Height="100" Width="100" Fill="Yellow"/> <Rectangle Height="100" Width="100" Fill="Purple"/> <Rectangle Height="100" Width="100" Fill="Orange"/> </GridView>
提前感谢所有提供可行方案的朋友。
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

