WPF如何增加ScrollBar箭头按钮点击滚动速度

WPF how to increase ScrollBar arrow button click scroll speed

我有一个 UserControl 包含一个 ScrollViewer 和 "sychronized" ScrollBar 与之关联绑定 ViewportSizeMaximum ScrollBar的属性,简化代码:

//xaml
<ScrollViewer x:Name="scViewer" <!--and its content-->/>
<ScrollBar ViewportSize="{Binding ViewportWidth, ElementName=scViewer}" 
           Maximum="{Binding ScrollableWidth, ElementName=scViewer}" x:Name="scHBar"
           Orientation="Horizontal" Scroll="HScrollBar_Scroll"/>
//code behind
private void HScrollBar_Scroll(object sender, ScrollEventArgs e)
{
    scViewer.ScrollToHorizontalOffset(e.NewValue);//and the other way around
}

它按预期工作,除了当用户点击 ScrollBar 上的 up/down 箭头时,速度 非常 慢,准确地说每次点击 0.1 像素,这需要用户单击 10 次(!)才能滚动一个像素。奇怪的是,鼠标滚轮滚动速度和拖动条速度一样好。
我想到的唯一解决方案是乘以 e.NewValue 增量,但是我不知道源是否是箭头按钮之一(不是鼠标滚轮或拖动条),所以它会破坏所有其他类型的交互。
关于鼠标滚轮滚动速度的问题很多,但是我找不到一个提到单击ScrollBar的箭头按钮时的速度的问题。如何更改 ScrollBar 的 箭头按钮 单击滚动速度?

Scrollbar还有属性SmallChangeLargeChange,分别默认为0.1和1。第一个是控制点击箭头按钮时滚动的速度,所以改变值:

<ScrollBar SmallChange="30" LargeChange="150"
       ViewportSize="{Binding ViewportWidth, ElementName=scViewer}" 
       Maximum="{Binding ScrollableWidth, ElementName=scViewer}" x:Name="scHBar"
       Orientation="Horizontal" Scroll="HScrollBar_Scroll"/>

对我有用。