在WPF列表视图中逐项滚动

我有一个列表视图,其高度非常小,但有3-4个listviewitems,它占用了Listview的整个大小(所以一次只能显示一个项目)

如果用户滚动它,列表视图不会一次滚动1个项目,它一次滚动2个项目(单个滚动)

你如何设置它如此滚动=一个项目向下/向上?

希望我明白这一点,如果不是只是告诉我。

我假设你在这里谈论MouseWheel滚动。

MouseWheel滚动实际上取决于IScrollInfo实现。 我建议你在ScrollViewer之前自己处理MouseWheel事件。 所以基本上,你可以做以下事情:

处理ListBox上的PreviewMouseWheel事件

            

在后面的代码中,向下或向上ScrollBar.LineUpCommand时触发ScrollBar.LineDownCommandScrollBar.LineUpCommand

 private void ListBox_PreviewMouseWheel(object sender, MouseWheelEventArgs e) { if (e.Delta > 0) { ScrollBar.LineDownCommand.Execute(null, e.OriginalSource as IInputElement); } if (e.Delta < 0) { ScrollBar.LineUpCommand.Execute(null, e.OriginalSource as IInputElement); } e.Handled = true; } 

因此,您将MouseWheel滚动转换为LineDown / LineUp