Silverlight中ListBox控件的鼠标滚动事件是需要自己实现的,下面是实现代码:
bool IsMouseInControl = false;
private void myListBox_MouseWheel(object sender, MouseWheelEventArgs e)
{
//如果鼠标不在ListBox上,就不做处理
if (!IsMouseInControl) return;
int mouseDelta = Math.Sign(e.Delta);
var selectedItem = myListBox.SelectedIndex;
//每次向下滚动一条记录
var nextRow = selectedItem - (int)mouseDelta *1;
if (nextRow > -1 && nextRow < icons.Count)
{
myListBox.ScrollIntoView(icons[nextRow]);
myListBox.SelectedIndex = nextRow;
}
}