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;
	}
}