【发布时间】:2012-06-01 19:41:18
【问题描述】:
我想同步 2 个滚动查看器。请让我知道如何获取两个滚动查看器的滚动事件,然后将它们同步?
【问题讨论】:
我想同步 2 个滚动查看器。请让我知道如何获取两个滚动查看器的滚动事件,然后将它们同步?
【问题讨论】:
首先获取要同步的滚动查看器的 2 个滚动条。
在这种情况下,scrollviewer1 和 scrollviewer2
然后我们得到两个滚动条的事件处理程序,在这种情况下是垂直的。然后我们可以通过事件轻松地同步它们。 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);
}
希望这会有所帮助!
【讨论】: