这个
SmallChange
WPF的性质
ScrollBar
不
ScrollViewer
). 因为你用的是
将始终应用16个单位的默认小更改。
您现在有两个选择:
-
实施
IScrollInfo
ContentControl
),将其作为内容附加到滚动查看器,并将
TabPanel
在这个定制包装类中,设置
CanContentScroll
滚动条
true
. 现在您可以完全控制滚动。
-
滚动条
让它滚动
滚动条
我向您展示第二种方法:
低于你的
滚动条
,添加新的滚动条:
<ScrollBar
x:Name="myScrollBar"
Grid.Row="0" Grid.Column="1" Orientation="Horizontal"
Visibility="Collapsed"
Tag="{Binding ElementName=sv}"
Minimum="0"
Maximum="{Binding ScrollableWidth, ElementName=sv}"
ViewportSize="{Binding ViewportWidth, ElementName=sv}"
Value="{Binding HorizontalOffset, ElementName=sv, Mode=OneWay}"
SmallChange="100"
Scroll="MyScrollBar_OnScroll"/>
你可以改变主意
零钱
更新两个scroll命令以指向此滚动条,而不是
:
<RepeatButton
<!-- ... -->
CommandTarget="{Binding ElementName=myScrollBar}"/>
最后,您需要将外部滚动条连接到
滚动条
:
void MyScrollBar_OnScroll(object sender, ScrollEventArgs e)
{
ScrollBar sb = (ScrollBar)sender;
(sb.Tag as ScrollViewer)?.ScrollToHorizontalOffset(e.NewValue);
}
Behavior
为了避免使用
Tag