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; } }
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); } }