wpf - 从 ListView 到其父级的冒泡滚动事件

标签 wpf listview scroll event-bubbling

在我的 WPF 应用程序中,我有一个 ListView谁的ScrollViewer.VerticalScrollBarVisibility设置为Disabled 。它包含在 ScrollViewer 中。当我尝试在 ListView 上使用鼠标滚轮时,外层 ScrollViewer不滚动,因为 ListView正在捕获滚动事件。

我怎样才能强制 ListView允许滚动事件冒泡到 ScrollViewer

最佳答案

需要捕获内部 ListView 中的预览鼠标滚轮事件

MyListView.PreviewMouseWheel += HandlePreviewMouseWheel;

或者在 XAML 中

<ListView ... PreviewMouseWheel="HandlePreviewMouseWheel">

然后停止事件滚动 ListView 并在父 ListView 中引发事件。

private void HandlePreviewMouseWheel(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);
    }
}

感谢@robert-wagner,他在几个月前为我解决了这个问题。

关于wpf - 从 ListView 到其父级的冒泡滚动事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1585462/

相关文章:

wpf - 在 RegionManager 中找不到区域(使用 PRISM)

wpf - 如何在 XAML 中将列表框从 0 增大到网格的大小

java - listView 更新不适用于静态变量

WPF:滚动项控件内容固定 header

Android ListView 滞后于复杂的布局

java - DrawerLayout ListView 未使用 GLSurfaceView 作为内容绘制

scroll - 隐藏 RecyclerView 滚动条上的 FloatingActionButton

ios - iPhone UIImageView 在 UIScrollView 中水平滚动 - 中心图像?

ios - 如何知道 UIwebview 是向下滚动还是向上滚动? ( swift )

wpf - "Busy"效果叠加