Как получить синхронизацию двух полос прокрутки в WPF - PullRequest
0 голосов
/ 13 марта 2019

В эти дни я изучаю WPF.

Я сделал несколько XAML, как показано ниже.

  <TextBox x:Name="TxtHex" IsReadOnly="True" MinWidth="500"                              
           ScrollViewer.HorizontalScrollBarVisibility="Disabled"
           Grid.Column="1"
           HorizontalScrollBarVisibility="Disabled"
           VerticalScrollBarVisibility="Visible"
           Style="{StaticResource Textbox}"/>

  <ScrollViewer Grid.Column="2">
           <TextBox x:Name="TxtAnsi" Margin="0,0,5,0" IsReadOnly="True" 
                    ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                    Style="{StaticResource Textbox}"/>
  </ScrollViewer>

Я сделал два текстовых поля с помощью VerticlaScrollBar и ScrollViewer.

Я хочу, чтобы эти две полосы прокрутки имели одинаковое значение, когда одна полоса прокрутки изменила значение.

Я имею в виду, я хочу синхронизировать две полосы прокрутки.

Итак, я хочу получить значение полосы прокрутки и установить значение на полосу прокрутки.

Я искал об этом, но я не могу получить никакой информации.

Пожалуйста, дайте мне несколько советов, если у кого-то есть хорошая идея.

Спасибо.

1 Ответ

0 голосов
/ 18 марта 2019

Сначала установите свой XAML-код (примечание: вы можете изменить фон)

<TextBox ScrollBar.Scroll="TxtHex_Scroll" AcceptsReturn="True" x:Name="TxtHex" 
IsReadOnly="True" MinWidth="500"                              
           ScrollViewer.HorizontalScrollBarVisibility="Disabled"
           HorizontalScrollBarVisibility="Disabled"
           VerticalScrollBarVisibility="Visible" Margin="22,231,271.6,10" 
Background="#FFE2E2E2"
           />

        <ScrollViewer ScrollBar.Scroll="Scroll_Scroll" x:Name="scroll" 
Margin="22,47,271.6,194">
             <TextBox x:Name="TxtAnsi" IsReadOnly="True" AcceptsReturn="True" 
                    ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
Background="#FFF7EEEE"
                    />
        </ScrollViewer>

Затем перейдите к коду:

private void TxtHex_Scroll(object sender, System.Windows.Controls.Primitives.ScrollEventArgs e)
        {
            scroll.ScrollToVerticalOffset(TxtHex.VerticalOffset);
            scroll.UpdateLayout();

        }

        private void Scroll_Scroll(object sender, System.Windows.Controls.Primitives.ScrollEventArgs e)
        {
            TxtHex.ScrollToVerticalOffset(scroll.VerticalOffset);
            scroll.UpdateLayout();
        }

Не забудьте добавить свой текст внутриЭто.Поэтому, когда вы прокручиваете одно, другое будет прокручивать то же значение.Но им обоим нужно достаточно текста для прокрутки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...