问题:<ScrollViewer><ListBox Name="ListBox_Answers" /></ScrollViewer> 这个结构导致ListBox拦截了滚轮事件
解决:
xaml
<ScrollViewer>
<ListBox Name="ListBox_Answers" PreviewMouseWheel="ListBox_Answers_PreviewMouseWheel" >
</ListBox>
</ScrollViewer>
xaml.cs
private void ListBox_Answers_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
if (!e.Handled)
{
e.Handled = true;
var eventArg = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta);
eventArg.RoutedEvent = UIElement.MouseWheelEvent;
eventArg.Source = sender;
var parent = ((Control)sender).Parent as UIElement;
parent.RaiseEvent(eventArg);
}
}
总结:
拦截滚轮事件,new一个新事件,父控件RasizeEvent
Reference: http://stackoverflow.com/questions/1585462/bubbling-scroll-events-from-a-listview-to-its-parent