C# 在WPF列表视图中逐项滚动
我有一个高度很小的listview,但有3-4个listviewitems,占据了listview的整个大小(因此一次只能显示一个项目) 如果用户在上面滚动,listview不会一次滚动1个项目,而是一次滚动2个项目(单个滚动) 如何设置为1滚动=向下/向上滚动一项C# 在WPF列表视图中逐项滚动,c#,wpf,xaml,C#,Wpf,Xaml,我有一个高度很小的listview,但有3-4个listviewitems,占据了listview的整个大小(因此一次只能显示一个项目) 如果用户在上面滚动,listview不会一次滚动1个项目,而是一次滚动2个项目(单个滚动) 如何设置为1滚动=向下/向上滚动一项 希望我能说清楚,如果不是告诉我的话。我想你说的是鼠标滚轮 鼠标滚轮滚动实际上取决于IScrollInfo实现。我建议您在ScrollViewer之前自己处理鼠标滚轮事件。因此,基本上,您可以执行以下操作: 处理ListBox上的Pr
希望我能说清楚,如果不是告诉我的话。我想你说的是鼠标滚轮 鼠标滚轮滚动实际上取决于
IScrollInfo
实现。我建议您在ScrollViewer
之前自己处理鼠标滚轮事件。因此,基本上,您可以执行以下操作:
处理ListBox上的PreviewMouseWheel
事件
<ListBox PreviewMouseWheel="ListBox_PreviewMouseWheel" Height="108" Width="100" x:Name="list" >
<Button Content="Button 1" Height="100"/>
<Button Content="Button 2" Height="100"/>
<Button Content="Button 3" Height="100"/>
<Button Content="Button 4" Height="100"/>
<Button Content="Button 5" Height="100"/>
<Button Content="Button 6" Height="100"/>
<Button Content="Button 7" Height="100"/>
<Button Content="Button 8" Height="100"/>
<Button Content="Button 9" Height="100"/>
</ListBox>
因此,您将鼠标滚轮滚动变成了向下/向上滚动。如果您一次只想显示一个项目,那么为什么要显示列表视图?我猜您希望鼠标滚轮像单击滚动条向上/向下按钮一样滚动。
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;
}