Пример #1
0
        private void MouseWheel(MouseWheelEventArgs e)
        {
            var comboBox = e.Source as ComboBox;

            if (comboBox != null && comboBox.IsDropDownOpen)
            {
                return;
            }

            var listBox = e.Source as ListBox;

            if (listBox != null)
            {
                var svChild = Common.FindVisualChild <ScrollViewer>(listBox);
                if (svChild != null && DoubleUtil.GreaterThan(svChild.ScrollableHeight, 0))
                {
                    return;
                }
            }

            var sv = e.Source as ScrollViewer;

            if (sv == null)
            {
                sv = Common.FindLogicParent <ScrollViewer>(e.Source as DependencyObject);
                if (sv == null)
                {
                    return;
                }
            }

            if (e.Delta > 0)
            {
                sv.ScrollToHorizontalOffset(Math.Max(0, sv.HorizontalOffset - e.Delta));
            }
            else
            {
                sv.ScrollToHorizontalOffset(Math.Min(sv.ScrollableWidth, sv.HorizontalOffset - e.Delta));
            }

            e.Handled = true;
        }