2013-01-16 86 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"

相關問題