private void OnPanGestureDetected(object source, PanGestureDetector.DetectedEventArgs e) { if (e.PanGesture.State == Gesture.StateType.Started) { if (direction == DirectionType.Horizontal) { currentSlidedOffset = slidedTrackImage.SizeWidth; } else if (direction == DirectionType.Vertical) { currentSlidedOffset = slidedTrackImage.SizeHeight; } if (null != sliderSlidingStartedHandler) { SliderSlidingStartedEventArgs args = new SliderSlidingStartedEventArgs(); args.CurrentValue = curValue; sliderSlidingStartedHandler(this, args); } UpdateState(isFocused, true); } if (e.PanGesture.State == Gesture.StateType.Continuing || e.PanGesture.State == Gesture.StateType.Started) { if (direction == DirectionType.Horizontal) { CalculateCurrentValueByGesture(e.PanGesture.Displacement.X); } else if (direction == DirectionType.Vertical) { CalculateCurrentValueByGesture(-e.PanGesture.Displacement.Y); } UpdateValue(); } if (e.PanGesture.State == Gesture.StateType.Finished) { if (null != slidingFinishedHandler) { SlidingFinishedArgs args = new SlidingFinishedArgs(); args.CurrentValue = curValue; slidingFinishedHandler(this, args); } if (null != sliderSlidingFinishedHandler) { SliderSlidingFinishedEventArgs args = new SliderSlidingFinishedEventArgs(); args.CurrentValue = curValue; sliderSlidingFinishedHandler(this, args); } UpdateState(isFocused, false); } }
private bool OnTouchEventForBgTrack(object source, TouchEventArgs e) { PointStateType state = e.Touch.GetState(0); if (state == PointStateType.Down) { Vector2 pos = e.Touch.GetLocalPosition(0); CalculateCurrentValueByTouch(pos); UpdateValue(); if (null != slidingFinishedHandler) { SlidingFinishedArgs args = new SlidingFinishedArgs(); args.CurrentValue = curValue; slidingFinishedHandler(this, args); } } return(false); }