在 ListView 中禁用垂直(滑动)滚动
Disabling vertical (swipe) scrolling in a ListView
我正在 UWP 上开发一个主要针对 W10 移动用户的应用程序,但是我相信如果在触摸屏 W10 设备上尝试,这个问题也会有效。
我正在使用 ListView 来布置一组具有文本和图标的按钮(从技术上讲是 ListViewItems)。它们在我的 SplitView 中,使用方式类似于您在 Windows 默认应用程序(例如 Groove 音乐和新闻)中看到的方式,如图所示:
它像我希望的那样完美地工作,除了如果用户用他们的手指在 ListView 上向上或向下拉动它会 'squash' 列表向上或向下 - 一个有用的电子邮件列表动画,例如,但在我的程序的 UI 上有一些不受欢迎的东西。
有没有办法禁用此行为?如果没有,是否有其他控件可以满足我的需要,或者我应该使用自定义控件?
在您的 ListView
上将 ScrollViewer.VerticalScrollMode
设置为 Auto
或 Disabled
:
<ListView
x:Name="ListView"
ScrollViewer.VerticalScrollMode="Auto"
</ListView>
默认值为 Enabled
,它总是 "squash" 顶部和底部。当设置为 Auto
时,如果不需要滚动(元素少于视口可以填充的元素),"squash" 效果将被禁用。并且如果设置为Disabled
,那么无论需要显示多少个元素,滚动都会被禁用。
官方文档见here。
我正在 UWP 上开发一个主要针对 W10 移动用户的应用程序,但是我相信如果在触摸屏 W10 设备上尝试,这个问题也会有效。
我正在使用 ListView 来布置一组具有文本和图标的按钮(从技术上讲是 ListViewItems)。它们在我的 SplitView 中,使用方式类似于您在 Windows 默认应用程序(例如 Groove 音乐和新闻)中看到的方式,如图所示:
它像我希望的那样完美地工作,除了如果用户用他们的手指在 ListView 上向上或向下拉动它会 'squash' 列表向上或向下 - 一个有用的电子邮件列表动画,例如,但在我的程序的 UI 上有一些不受欢迎的东西。
有没有办法禁用此行为?如果没有,是否有其他控件可以满足我的需要,或者我应该使用自定义控件?
在您的 ListView
上将 ScrollViewer.VerticalScrollMode
设置为 Auto
或 Disabled
:
<ListView
x:Name="ListView"
ScrollViewer.VerticalScrollMode="Auto"
</ListView>
默认值为 Enabled
,它总是 "squash" 顶部和底部。当设置为 Auto
时,如果不需要滚动(元素少于视口可以填充的元素),"squash" 效果将被禁用。并且如果设置为Disabled
,那么无论需要显示多少个元素,滚动都会被禁用。
官方文档见here。