我有一个填充了相对少量项目的列表框。这些项目不适合在屏幕上,所以列表框会自动获得右侧的垂直滚动条。滚动条响应鼠标滚轮,但列表框项不包含。我怎样才能使项目响应鼠标滚轮?在列表框项目上捕获鼠标滚轮
在此先感谢!
--Nacho
我有一个填充了相对少量项目的列表框。这些项目不适合在屏幕上,所以列表框会自动获得右侧的垂直滚动条。滚动条响应鼠标滚轮,但列表框项不包含。我怎样才能使项目响应鼠标滚轮?在列表框项目上捕获鼠标滚轮
在此先感谢!
--Nacho
如果你想避免这种列表框响应鼠标滚轮事件,你要处理的列表框元素的上下文中的鼠标滚轮事件。
在该处理程序中,您可以设置e.Handled = true,这将停止冒泡到包含列表框的事件。
你可能会把这个语句放在ListBoxItem的一个contains元素中。
这选择我在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"
见http://stackoverflow.com/questions/2189053/disable-mouse-wheel-on -itemscontrol式,WPF。也可以看到http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer_methods – ridoy