Child elements of scrollviewer preventing scrolling with mouse wheel?

前端 未结 4 1985

I\'m having a problem getting mouse wheel scrolling to work in the following XAML, which I have simplified for clarity:



        
4条回答
  •  一个人的身影
    2020-12-02 19:02

    Another way of implementing this, is by creating you own ScrollViewer like this:

    public class MyScrollViewer : ScrollViewer
    {
        protected override void OnMouseWheel(MouseWheelEventArgs e)
        {
            var parentElement = Parent as UIElement;
            if (parentElement != null)
            {
                if ((e.Delta > 0 && VerticalOffset == 0) ||
                    (e.Delta < 0 && VerticalOffset == ScrollableHeight))
                {
                    e.Handled = true;
    
                    var routedArgs = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta);
                    routedArgs.RoutedEvent = UIElement.MouseWheelEvent;
                    parentElement.RaiseEvent(routedArgs);
                }
            }
    
            base.OnMouseWheel(e);
        }
    }
    

提交回复
热议问题