我可以在UWP中的多个Listview项目之间同步滚动吗?

如何链接2个Listview组件,以便它们的滚动同步(当我滚动一个,另一个滚动同时)?

所以基本上我需要一种方法:

1)监视Listview1的滚动事件2)将相同的滚动偏移设置为Listview2

我在Stackoverflow上找到了一些示例,但它们要么引用WPF,要么引用WinRT,它们与我的应用程序不兼容。

谢谢!

您在问题中描述的内容可以通过以下步骤完成:

  1. ListView找到ScrollViewer (从这个答案中查看GetScrollViewer )。
  2. 订阅ViewChanged活动。
  3. 在事件处理程序内部,在另一个ScrollViewer上调用ChangeView

假设您正在垂直滚动 –

 private void SyncScrollViewers() { var scrollViewer1 = MyListView1.GetScrollViewer(); var scrollViewer2 = MyListView2.GetScrollViewer(); scrollViewer1.ViewChanged += (s, e) => { scrollViewer2.ChangeView(null, scrollViewer1.VerticalOffset, null, false); }; }