我已经在WPF中创建了一个列表视图。通过单击更改其中的项目的背景色,在这种情况下,我停用了列表视图道具“可聚焦”。对于我的用例(在触摸屏上),我想隐藏滚动条,只需单击底部的上/下按钮即可滚动。单击一下即可滚动整个页面(向上/向下)并显示下一个(到目前为止已隐藏)项目。我正在寻找一种灵活的解决方案,并且不想像这样计算像素或水深(项目也没有固定的高度,窗口也没有固定)
提前感谢
首先,看一下How do I ask a good question?可能会有益。具体来说,如果您包含一些XAML,则对于您的情况将更容易理解。但是,我确实为您提供了解决方案。
ItemsControl
像ListView
一样支持“内容滚动”,这意味着可以按内容/项目滚动而不是按像素滚动。 This question提供了一种解决方案,可通过访问内部ListView
查找哪些项目在ScrollViewer
中当前可见。 ScrollViewer.VerticalOffset
会告诉您索引的第一个可见项目,ScrollViewer.ViewportHeight
会告诉您有多少个项目可见。要滚动到“下一页”,您只需要:
ScrollViewer.VerticalOffset += ScrollViewer.ViewportHeight;