这些天我正在学习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制作了两个文本框。
我希望当一个滚动条更改值时,这两个滚动条具有相同的值。
我的意思是,我想同步两个滚动条。
所以,我想获取scollbar的值并将其值设置为滚动条。
我一直在搜索,但是我无法获得任何信息。
如果有人有个好主意,请给我一些提示。
谢谢。
答案 0 :(得分:0)
首先,设置您的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();
}
不要忘记在其中添加文字。因此,当您滚动一个滚动条时,另一个滚动条将以相同的值滚动。但是他们两个都需要足够的文本才能滚动。