如何使用鼠标滚轮
问题描述:
我里面滚动的ScrollViewer列表框
XAML:如何使用鼠标滚轮
<ScrollViewer HorizontalAlignment="Center" PreviewMouseWheel="myScrollViewer_PreviewMouseWheel" Name="myScrollViewer" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Auto">
<Grid Width="1200">
<ListBox ScrollViewer.VerticalScrollBarVisibility="Visible" MouseMove="listbox_MouseMove" Background="AliceBlue" Height="350" Width="200" HorizontalAlignment="Center" Name="listbox"/>
</Grid>
</ScrollViewer>
CS:
private void myScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
if (e.Delta < 0) // wheel down
{
if (myScrollViewer.HorizontalOffset + e.Delta > 0)
{
myScrollViewer.ScrollToHorizontalOffset(myScrollViewer.HorizontalOffset + e.Delta);
}
else
{
myScrollViewer.ScrollToLeftEnd();
}
}
else //wheel up
{
if (myScrollViewer.ExtentWidth > myScrollViewer.HorizontalOffset + e.Delta)
{
myScrollViewer.ScrollToHorizontalOffset(myScrollViewer.HorizontalOffset + e.Delta);
}
else
{
myScrollViewer.ScrollToRightEnd();
}
}
}
现在的鼠标滚轮事件的ScrollViewer滚动时,如果我的鼠标越过列表框。我想要:如果我的鼠标移过列表框并停留一段时间(可能是1秒或2秒),滚动应移动到列表框。如果鼠标不停留在ListBox上(1或2秒),则滚动不应移动到ListBox。 ScrollViewer中可能有多个ListBox。
答
它添加到你的列表框:
ScrollViewer.CanContentScroll =“真”
框滚动没有与鼠标滚轮的工作,甚至它得到了一个焦点 – 2015-02-23 09:21:06