我有一个列表框,其中填充了相对较少的项目。这些项目不适合屏幕,因此列表框会自动在右侧获得一个垂直滚动条。滚动条响应鼠标滚轮,但列表框项目不响应。如何使项目响应鼠标滚轮?
提前致谢!
——纳乔
我有一个列表框,其中填充了相对较少的项目。这些项目不适合屏幕,因此列表框会自动在右侧获得一个垂直滚动条。滚动条响应鼠标滚轮,但列表框项目不响应。如何使项目响应鼠标滚轮?
提前致谢!
——纳乔
这会选择我在 WPF 窗口中的列表框中的项目。当您转动鼠标滚轮时,会选择一个 ListBox 项。ListBox 在此之前获得焦点,并且已经选择了第一项。
在类文件中放置:
private void ListBox1_MouseWheel(object sender, MouseWheelEventArgs e)
{
int cap = (ListBox1.Items.Count) - 1;
int place = ListBox1.SelectedIndex;
int incre = e.Delta/120;
place += incre;
if (place > cap)
{
place = 0;
}
if (place < 0)
{
place = cap;
}
ListBox1.SelectedIndex = place;
ListBox1.ScrollIntoView(itemNoresult1.SelectedItem);
}
在列表框的 XAML 属性中放置:PreviewMouseWheel="ListBox1_MouseWheel"
如果要避免 ListBox 响应鼠标滚轮事件,则需要在 ListBox 元素的上下文中处理鼠标滚轮事件。
在该处理程序中,您可以设置 e.Handled=true 这将停止事件冒泡到包含列表框。
您不妨将该语句放在 ListBoxItem 内的包含元素中。