【问题标题】:Can I sync scrolling between multiple Listview items in UWP?我可以在 UWP 中的多个 Listview 项目之间同步滚动吗?
【发布时间】:2017-05-31 21:02:25
【问题描述】:

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

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

1) 监听Listview1的滚动事件 2) 给Listview2设置相同的滚动偏移量

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

谢谢!

【问题讨论】:

    标签: c# xaml uwp windows-10


    【解决方案1】:

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

    1. ListView 中找到ScrollViewer(从this answer 签出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);
        };
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 2016-08-26
      • 2018-12-18
      • 1970-01-01
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多