c# - 在 ListView 中禁用垂直(滑动)滚动

标签 c# wpf listview win-universal-app windows-10-mobile

我正在 UWP 上开发一个主要针对 W10 移动用户的应用程序,但我相信如果在触摸屏 W10 设备上尝试,这个问题也会有效。

我正在使用 ListView 来布置一组具有文本和图标的按钮(从技术上讲是 ListViewItems)。它们在我的 SplitView 中,使用方式类似于您在 Windows 默认应用程序(例如 Groove 音乐和新闻)中看到的方式,如图所示:

Example from Groove Music

它如我所愿完美地工作,除了如果用户用他们的手指在 ListView 上拉动或拉动它会向上或向下“挤压”列表——例如,一个用于电子邮件列表的有用动画,但是我的程序的 UI 上有一些不受欢迎的东西。

有没有办法禁止这种行为?如果没有,是否有替代控件可以满足我的需要,或者我应该使用自定义控件?

最佳答案

ListView 上将 ScrollViewer.VerticalScrollMode 设置为 AutoDisabled:

<ListView
    x:Name="ListView"
    ScrollViewer.VerticalScrollMode="Auto"
</ListView>

默认值为Enabled,它总是“挤压”顶部和底部。当设置为 Auto 时,如果不需要滚动(元素少于视口(viewport)可以填充的元素),“挤压”效果将被禁用。如果将该值设置为 Disabled,则无论需要显示多少元素,滚动都将被禁用。

官方文档见here .

关于c# - 在 ListView 中禁用垂直(滑动)滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32797084/

相关文章:

c# - ListView 突出显示所选内容

C# 3.5 分部类 String IsNullOrWhiteSpace

c# - RabbitMQ:erl.exe 占用高 CPU 使用率

c# - DateTime 数据,分成几天

c# - 单击 WPF 超链接时打开 WPF 窗体

listview - Xamarin.Forms ListView 。我可以知道每行的高度吗?

c# - 如何在 winforms 桌面应用程序中制作自动完成文本框

c# - 使用 MVVM 绑定(bind) ComboBox SelectedItem

sql - 一次插入或更新多个表的最佳做法是什么

c# - 如何从 ListView 复制单个子项?