/// <summary>
 /// Responds to the horizontal tilt of a mouse
 /// </summary>
 /// <param name="e">Required arguments that describe this event</param>
 protected virtual void OnPreviewMouseHWheel(RoutedMouseHWheelEventArgs e)
 {
 }
        /// <summary>
        /// Raises the PreviewMouseHWheelEvent and MouseHWheelEvent routed events
        /// </summary>
        /// <param name="delta">The delta of the horizontal tilt</param>
        private void RaiseMouseHWheelEvent(int delta)
        {
            var tunnel = new RoutedMouseHWheelEventArgs(PreviewMouseHWheelEvent) { Delta = delta };
            OnPreviewMouseHWheel(tunnel);
            RaiseEvent(tunnel);

            if (!tunnel.Handled)
            {
                var bubble = new RoutedMouseHWheelEventArgs(MouseHWheelEvent) { Delta = delta };
                OnMouseHWheel(bubble);
                RaiseEvent(bubble);
            }
        }
 /// <summary>
 /// Responds to the horizontal tilt of a mouse
 /// </summary>
 /// <param name="e">Required arguments that describe this event</param>
 protected virtual void OnMouseHWheel(RoutedMouseHWheelEventArgs e)
 {
     ScrollToHorizontalOffset(HorizontalOffset + e.Delta);
 }