![](/img/trans.png)
[英]How do I synchronize scroll in two RichTextBoxes maintaining a ratio?
[英]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.