2013-01-16 81 views
0

我有一个填充了相对少量项目的列表框。这些项目不适合在屏幕上,所以列表框会自动获得右侧的垂直滚动条。滚动条响应鼠标滚轮,但列表框项不包含。我怎样才能使项目响应鼠标滚轮?在列表框项目上捕获鼠标滚轮

在此先感谢!

--Nacho

+0

见http://stackoverflow.com/questions/2189053/disable-mouse-wheel-on -itemscontrol式,WPF。也可以看到http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer_methods – ridoy

回答

0

如果你想避免这种列表框响应鼠标滚轮事件,你要处理的列表框元素的上下文中的鼠标滚轮事件。

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

你可能会把这个语句放在ListBoxItem的一个contains元素中。

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"

相关问题