同步2个scrollviewers silverlight

时间:2012-06-01 11:36:34

标签: silverlight scrollviewer

我想要同步2个滚动查看器。请告诉我如何获取两个scrollviewer的滚动事件,然后同步它们?

1 个答案:

答案 0 :(得分:5)

首先获取要同步的滚动查看器的2个滚动条。 在这种情况下,scrollviewer1scrollviewer2 然后我们得到两个滚动条的事件处理程序,在这种情况下是垂直的。然后我们可以通过事件轻松地同步它们。 ScrollToVerticalOffset将按照另一个的方式滚动。

        ScrollBar vertical1 = ((FrameworkElement)VisualTreeHelper.GetChild(scrollviewer1, 0)).FindName("VerticalScrollBar") as ScrollBar;
        vertical1.ValueChanged += new RoutedPropertyChangedEventHandler<double>(vertical1_ValueChanged);

        ScrollBar vertical2 = ((FrameworkElement)VisualTreeHelper.GetChild(scrollviewer2, 0)).FindName("VerticalScrollBar") as ScrollBar;
        vertical2.ValueChanged += new RoutedPropertyChangedEventHandler<double>(vertical2_ValueChanged);


    void vertical1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
    {
        scrollviewer2.ScrollToVerticalOffset(e.NewValue);
    }

    void vertical2_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
    {
        scrollviewer1.ScrollToVerticalOffset(e.NewValue);
    }

希望这有帮助!