/// <summary> /// Scroll a ScrollViewer vertically by a given offset. /// /// </summary> /// <param name="viewer">The ScrollViewer.</param><param name="offset">The vertical offset to scroll.</param> private static void ScrollByVerticalOffset(ScrollViewer viewer, double offset) { Debug.Assert(viewer != null, "viewer should not be null!"); offset += viewer.VerticalOffset; offset = ScrollViewerExtensions.CoerceVerticalOffset(viewer, offset); viewer.ScrollToVerticalOffset(offset); }
/// <summary> /// Handles the mouse wheel event. /// /// </summary> /// <param name="sender">The ScrollViewer.</param><param name="e">Event arguments.</param> private static void OnMouseWheel(object sender, MouseWheelEventArgs e) { ScrollViewer viewer = sender as ScrollViewer; Debug.Assert(viewer != null, "sender should be a non-null ScrollViewer!"); Debug.Assert(e != null, "e should not be null!"); if (e.Handled) { return; } double offset = ScrollViewerExtensions.CoerceVerticalOffset(viewer, viewer.VerticalOffset - (double)e.Delta); viewer.ScrollToVerticalOffset(offset); e.Handled = true; }