Windows商店应用程序-更改列表视图水平滑动偏移量
本文关键字:水平 视图 平滑 偏移量 列表 应用程序 Windows | 更新日期: 2023-09-27 18:11:02
下一篇文章描述了我的问题,但从来没有一个解决方案。
有没有人找到解决这个问题的方法?
Windows 8 -自定义ListView滑动偏移量?
您可能需要滚动您自己的操作来取代'滑动选择'。这个框架不是开源的,所以你甚至不能修改绑定在一些控件上的内置手势。不管怎样,我有一个样品可以为你演示你想要的。这里。
- 禁用IsSwipeEnabled并滚动自己的。
- ListViewItem应该处理操作
- 设置激活/取消激活ListViewItem的距离。IsSelected
<ListView SelectionMode="Multiple"
IsSwipeEnabled="False">
<ListView.ItemTemplate>
<DataTemplate>
<ContentPresenter ManipulationMode="TranslateX, System"
ManipulationDelta="UIElement_OnManipulationDelta"></ContentPresenter>
</DataTemplate>
</ListView.ItemTemplate>
<ListViewItem ManipulationMode="TranslateX, System"
ManipulationDelta="UIElement_OnManipulationDelta">
<Grid Height="100"
Width="200"
Background="Blue"></Grid>
</ListViewItem>
<ListViewItem ManipulationMode="TranslateX, System"
ManipulationDelta="UIElement_OnManipulationDelta">
<Grid Height="100"
Width="200"
Background="Blue"></Grid>
</ListViewItem>
<ListViewItem ManipulationMode="TranslateX, System"
ManipulationDelta="UIElement_OnManipulationDelta">
<Grid Height="100"
Width="200"
Background="Blue"></Grid>
</ListViewItem>
<ListViewItem ManipulationMode="TranslateX, System"
ManipulationDelta="UIElement_OnManipulationDelta">
<Grid Height="100"
Width="200"
Background="Blue"></Grid>
</ListViewItem>
</ListView>
和
背后的代码 private void UIElement_OnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
e.Handled = true;
ListViewItem item = sender as ListViewItem;
if (item == null) return;
if (e.Cumulative.Translation.X > 150)
{
item.IsSelected = !item.IsSelected;
e.Complete();
}
}