我的UserControl
包含ScrollViewer
,其中“sychronized”ScrollBar
与ViewportSize
和Maximum
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的箭头按钮单击滚动速度?
答案 0 :(得分:2)
Scrollbar
也有属性SmallChange
和LargeChange
,默认分别为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"/>
为我工作。