问题:<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
本文介绍了一种解决ListBox在ScrollViewer中导致滚轮事件被拦截的问题的方法。通过为ListBox添加PreviewMouseWheel事件处理程序,并将处理后的滚轮事件重新传递给父控件,实现了滚轮事件的正常传播。
727

被折叠的 条评论
为什么被折叠?



