VS编程,WPF中两个滚动条 ScrollViewer 同步滚动的一种方法

版权声明:我不生产代码,我只是代码的搬运工。 https://blog.csdn.net/qq_43307934/article/details/83450444

这里以两个ScrollViewer控件之间的同步滚动为例。

当鼠标拖动其中一个滚动条时,另一个滚动条跟着一起调整到相应的位置。

 

1、前台创建两个ScrollViewer控件,并分别给两个滚动条控件命名。

        <StackPanel Orientation="Horizontal">

            <ScrollViewer BorderThickness=" 2"
                          Name="SV1"
                          HorizontalScrollBarVisibility="Auto"
                          VerticalScrollBarVisibility="Auto">
                <TextBlock Width=" 300"
                           Height=" 900"
                           Background="BlanchedAlmond" />
            </ScrollViewer>


            <ScrollViewer BorderThickness=" 2"
                          Name="SV2"
                          Margin=" 50 0"
                          ScrollChanged="SV2_ScrollChanged"
                          HorizontalScrollBarVisibility="Auto"
                          VerticalScrollBarVisibility="Auto">
                <TextBlock Width=" 300"
                           Height=" 900"
                           Background="DeepSkyBlue" />
            </ScrollViewer>

        </StackPanel>

2、给其中一个滚动控件增加ScrollChanged="  "事件

3、在事件中增加如下格式的代码

            ScrollViewer sv = e.OriginalSource as ScrollViewer;

            if (sv != null)
            {
                SV1.ScrollToVerticalOffset(sv.VerticalOffset);
            }

像这样: 

4、如果想让两个控件互相影响,则在两个控件中都定义3中的事件

猜你喜欢

转载自blog.csdn.net/qq_43307934/article/details/83450444