【发布时间】:2020-02-11 23:31:28
【问题描述】:
我在 WPF 中创建了一个列表视图。那里的项目通过单击更改它们的背景颜色,在这种情况下,我停用了 listview 道具“Focusable”。 对于我的用例(在触摸屏上),我想隐藏滚动条,只需单击底部的向上/向下按钮即可滚动。一键应滚动整个页面(向上/向下)并显示下一个(到目前为止隐藏的)项目。 我正在寻找一个灵活的解决方案,不想计算像素或那样的东西(项目也没有固定的高度,还有窗口)
提前致谢
【问题讨论】:
我在 WPF 中创建了一个列表视图。那里的项目通过单击更改它们的背景颜色,在这种情况下,我停用了 listview 道具“Focusable”。 对于我的用例(在触摸屏上),我想隐藏滚动条,只需单击底部的向上/向下按钮即可滚动。一键应滚动整个页面(向上/向下)并显示下一个(到目前为止隐藏的)项目。 我正在寻找一个灵活的解决方案,不想计算像素或那样的东西(项目也没有固定的高度,还有窗口)
提前致谢
【问题讨论】:
首先,看看How do I ask a good question? 可能会对您有所帮助。具体来说,在您的情况下,如果您包含一些 XAML,则更容易理解这种情况。不过,我确实认为我有适合您的解决方案。
ItemsControls 像ListView 一样支持“内容滚动”,这意味着能够按内容/项目滚动而不是按像素滚动。 This question 提供了一个解决方案,通过访问内部ScrollViewer 来查找当前在ListView 中可见的项目。 ScrollViewer.VerticalOffset 会告诉你索引第一个可见项目,ScrollViewer.ViewportHeight 会告诉你有多少项目是可见的。要滚动到“下一页”,您只需:
ScrollViewer.VerticalOffset += ScrollViewer.ViewportHeight;
【讨论】: