public MouseWheelLogicalScrollBehavior(MouseWheelScrollClient scrollClient, IDisposable manipulator)
            : base(scrollClient, manipulator)
        {
            var element = Client.Controller.Element;

            if (scrollClient.Orientation == Orientation.Vertical)
            {
                Debouncing      = MouseWheel.GetLogicalVScrollDebouncing(element);
                ScrollIncrement = MouseWheel.GetLogicalVScrollIncrement(element);
                MouseWheel.LogicalVScrollDebouncingProperty.AddValueChanged(element, OnDebouncingYChanged);
                MouseWheel.LogicalVScrollIncrementProperty.AddValueChanged(element, OnVScrollIncrementChanged);
            }
            else
            {
                Debouncing      = MouseWheel.GetLogicalHScrollDebouncing(element);
                ScrollIncrement = MouseWheel.GetLogicalHScrollIncrement(element);
                MouseWheel.LogicalHScrollDebouncingProperty.AddValueChanged(element, OnDebouncingXChanged);
                MouseWheel.LogicalHScrollIncrementProperty.AddValueChanged(element, OnHScrollIncrementChanged);
            }
        }
 private void    OnDebouncingXChanged(object sender, EventArgs e)
 {
     Debouncing = MouseWheel.GetLogicalHScrollDebouncing(sender as DependencyObject);
 }