捕获列表框项目上的鼠标滚轮

时间:2013-01-16 10:05:52

标签: wpf mousewheel listboxitem

我有一个列表框,其中填充了相对较少的项目。这些项目不适合屏幕,因此列表框会自动获得右侧的垂直滚动条。滚动条响应鼠标滚轮但列表框项不响应。如何让物品响应鼠标滚轮?

提前致谢!

- 纳乔

2 个答案:

答案 0 :(得分:0)

如果你想避免ListBox响应mousewheel事件,你想在ListBox元素的上下文中处理mousewheel事件。

在该处理程序中,您可以设置e.Handled = true,这将阻止事件冒泡到包含列表框。

您也可以将该语句放在ListBoxItem中的包含元素中。

答案 1 :(得分:0)

这将选择我在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"