/// <summary>
        /// Calculate the distance between this TreeViewItem and the item being
        /// paged from.
        /// </summary>
        /// <param name="up">
        /// A value indicating whether the page should be scrolled up.
        /// </param>
        /// <param name="element">The element being paged from.</param>
        /// <param name="scrollHost">The ScrollViewer being scrolled.</param>
        /// <param name="top">The top of item to start from.</param>
        /// <param name="bottom">The bottom of the item to start from.</param>
        /// <param name="closeEdge">
        /// The distance between the top/bottom of one item to the other.
        /// </param>
        /// <returns>
        /// A value indicating whether the scroll was handled.
        /// </returns>
        private static double CalculateDelta(bool up, FrameworkElement element, ScrollViewer scrollHost, double top, double bottom, out double closeEdge)
        {
            double elementTop, elementBottom;
            element.GetTopAndBottom(scrollHost, out elementTop, out elementBottom);

            if (up)
            {
                closeEdge = bottom - elementBottom;
                return bottom - elementTop;
            }
            else
            {
                closeEdge = elementTop - top;
                return elementBottom - top;
            }
        }