我可以在UWP中的多个Listview项目之间同步滚动吗?
如何链接2个Listview组件,以便它们的滚动同步(当我滚动一个,另一个滚动同时)?
所以基本上我需要一种方法:
1)监视Listview1的滚动事件2)将相同的滚动偏移设置为Listview2
我在Stackoverflow上找到了一些示例,但它们要么引用WPF,要么引用WinRT,它们与我的应用程序不兼容。
谢谢!
您在问题中描述的内容可以通过以下步骤完成:
- 在
ListView
找到ScrollViewer
(从这个答案中查看GetScrollViewer
)。 - 订阅
ViewChanged
活动。 - 在事件处理程序内部,在另一个
ScrollViewer
上调用ChangeView
。
假设您正在垂直滚动 –
private void SyncScrollViewers() { var scrollViewer1 = MyListView1.GetScrollViewer(); var scrollViewer2 = MyListView2.GetScrollViewer(); scrollViewer1.ViewChanged += (s, e) => { scrollViewer2.ChangeView(null, scrollViewer1.VerticalOffset, null, false); }; }