Exemplo n.º 1
0
        private void StopPanning()
        {
            if (mScrollOrigin != null && ImagePopup != null && ImagePopup.Child != null)
            {
                //Stop the panning scroller
                mScroller.Stop();
                mScroller.Tick -= OnScrollerTick;
                mScroller       = null;

                //Remove the pan origin
                AdornerLayer.GetAdornerLayer(ImagePopup.Child).Remove(mScrollOrigin);
                mScrollOrigin = null;

                //Stop showing the panning cursor
                Mouse.OverrideCursor = null;
            }
        }
Exemplo n.º 2
0
        private void StartPanning()
        {
            if (mScrollOrigin == null && ImagePopup != null && ImagePopup.Child != null && ImageDisplay != null && ImagePopupZoom != null)
            {
                //Show the pan origin
                Point location = ImageDisplay.TranslatePoint(mMouseDownLocation, ImagePopup.Child);
                mScrollOrigin = new ScrollOrigin(ImagePopup.Child, location);
                AdornerLayer.GetAdornerLayer(ImagePopup.Child).Add(mScrollOrigin);

                //Show the panning cursor
                SetPanning(PanDirection.None, 0D);

                //Start the panning scroller
                System.Diagnostics.Debug.Assert(mScroller == null, "Only one scroller timer should exist at any time");
                mScroller = new DispatcherTimer(sPanScrollRate, DispatcherPriority.Input, OnScrollerTick, Dispatcher);
            }
        }