/// <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 = Math.Max(Math.Min(offset, viewer.ExtentHeight), 0);
viewer.ScrollToVerticalOffset(offset);
}