我有一個填充了相對少量項目的列表框。這些項目不適合在屏幕上,所以列表框會自動獲得右側的垂直滾動條。滾動條響應鼠標滾輪,但列表框項不包含。我怎樣才能使項目響應鼠標滾輪?在列表框項目上捕獲鼠標滾輪
在此先感謝!
--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