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

时间:2016-03-16 12:12:33

标签: c# wpf xaml button scrollbar

我的UserControl包含ScrollViewer,其中“sychronized”ScrollBarViewportSizeMaximum 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 } s属性,简化代码:

ScrollBar

按预期工作,除非用户点击e.NewValue上的向上/向下箭头,速度非常慢,每次点击0.1px都是精确的,这需要用户点击10时间(!)滚动像素。奇怪的是,鼠标滚轮的滚动速度很好,就像拖动杆的速度一样 我想到的唯一解决方案是乘以ScrollBar delta,但我不知道源是否是箭头按钮之一(不是鼠标滚轮或条形拖动),因此它会打破其他所有类型的交互。登记/> 关于鼠标滚轮的滚动速度存在很多问题,但是当点击function performInfiniteClick(){ var len = performInfiniteClick.counter; $('.clickMe').each(function (i, el) { window.setTimeout(function () { $(el).trigger("click"); len--; if (!len) { performInfiniteClick(); } }, 1000 * i); }); return true; } performInfiniteClick.counter = $('.clickMe').length; performInfiniteClick(); 的箭头按钮时,我找不到一个提到速度的单一问题。如何更改ScrollBar的箭头按钮单击滚动速度?

1 个答案:

答案 0 :(得分:2)

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"/>

为我工作。