Exemplo n.º 1
0
        /// <summary>
        /// Scrolls if mouse is pressed and over scroll border.
        /// </summary>
        /// <param name="position">Mouse position relative to treeView control.</param>
        /// <returns>Returns true if over scroll border, otherwise false.</returns>
        internal bool TryScroll(Point position)
        {
            if (!IsLeftButtonDown)
            {
                return(false);
            }

            double scrollDelta;

            if ((position.Y < AutoScroller.ScrollBorderSize) && _AutoScroller.CanScrollUp)
            {
                //scroll down
                scrollDelta = -AutoScroller.ScrollDelta;
            }
            else if (((TreeView.RenderSize.Height - position.Y) < AutoScroller.ScrollBorderSize) && _AutoScroller.CanScrollDown)
            {
                //scroll up
                scrollDelta = AutoScroller.ScrollDelta;
            }
            else
            {
                _StopWatch = null;
                return(false);
            }

            if (_StopWatch == null || _StopWatch.ElapsedMilliseconds > AutoScroller.ScrollDelay)
            {
                _AutoScroller.Scroll(scrollDelta);
                _StopWatch = new Stopwatch();
                _StopWatch.Start();
            }

            return(true);
        }