簡體   English   中英

如何同步兩個滾動條?

[英]How can I synchronize two scroll bars?

我想同步兩個滾動條; 當用戶向上/向下scroll2自動設置scroll1時具有相同的位置。 scroll2是RichTextBox一個實例,scroll1是ListView一個實例。 我不知道怎么做。

更新

我認為現在更近了。 這是我目前的XAML代碼:

<RichTextBox ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Visible" Name="TextInput" AcceptsReturn="True" TextChanged="TextChangedEventHandler" Margin="0,23,0,9" ScrollViewer.ScrollChanged="OnScrollChangedHandler" HorizontalScrollBarVisibility="Visible" Grid.RowSpan="2" Grid.ColumnSpan="9" HorizontalAlignment="Right" Width="432.493">
            <RichTextBox.Resources>
                <Style TargetType="{x:Type Paragraph}">
                    <Setter Property="Margin" Value="0"/>
                </Style>
            </RichTextBox.Resources>
        </RichTextBox>

    <ScrollViewer Name="ScrollRow" VerticalScrollBarVisibility="Visible" ScrollViewer.ScrollChanged="OnRowsScrollChangedHandler" ScrollViewer.HorizontalScrollBarVisibility="Visible" Grid.RowSpan="2" Margin="0,23,0,7.02" HorizontalAlignment="Left" Width="40">
                    <StackPanel Name="pScrollRow">
                      <ListView Margin="0,23,0,9" Name="Rows">
                        1.
                      </ListView>
          </StackPanel>
           </ScrollViewer>

C#代碼:

// ... 

 private void OnScrollChangedHandler(object sender, ScrollChangedEventArgs e)
        {
            ((IScrollInfo)pScrollRow).SetHorizontalOffset(e.HorizontalOffset);
        }

為兩個框添加ScrollBar.ValueChanged的事件處理程序,並讓它們將彼此的ScrollBar.Value更改為相應的值。 我沒有測試過這個,但看起來合情合理! 祝好運!

我建議你添加元素綁定來同步值,這樣你就不需要任何代碼了。 這是關於元素綁定的MSDN的詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM