0

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

提前致谢!

——纳乔

4

2 回答 2

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"

于 2014-01-18T12:24:19.303 回答
0

如果要避免 ListBox 响应鼠标滚轮事件,则需要在 ListBox 元素的上下文中处理鼠标滚轮事件。

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

您不妨将该语句放在 ListBoxItem 内的包含元素中。

于 2013-11-11T21:41:20.893 回答