У меня SKCanvasView, который рисует некоторую графику, и теперь есть необходимость получить позицию нажатия. Прочитав несколько постов, я решил реализовать это через MR.Gestures. Поскольку внутри пакета нет стандартной реализации SKCanvasView, мне нужно было бы реализовать ее самостоятельно.
Мое предположение было наследовать от IGestureAwareControl
public class AudioWaveView : SKCanvasView, IGestureAwareControl
Для этого нужно реализовать несколько событий и команду:
public GestureHandler GestureHandler { get; }
public ICommand DownCommand { get; set; }
public object DownCommandParameter { get; set; }
public ICommand UpCommand { get; set; }
public object UpCommandParameter { get; set; }
public ICommand TappingCommand { get; set; }
public object TappingCommandParameter { get; set; }
public ICommand TappedCommand { get; set; }
public object TappedCommandParameter { get; set; }
public ICommand DoubleTappedCommand { get; set; }
public object DoubleTappedCommandParameter { get; set; }
public ICommand LongPressingCommand { get; set; }
public object LongPressingCommandParameter { get; set; }
public ICommand LongPressedCommand { get; set; }
public object LongPressedCommandParameter { get; set; }
public ICommand PinchingCommand { get; set; }
public object PinchingCommandParameter { get; set; }
public ICommand PinchedCommand { get; set; }
public object PinchedCommandParameter { get; set; }
public ICommand PanningCommand { get; set; }
public object PanningCommandParameter { get; set; }
public ICommand PannedCommand { get; set; }
public object PannedCommandParameter { get; set; }
public ICommand SwipedCommand { get; set; }
public object SwipedCommandParameter { get; set; }
public ICommand RotatingCommand { get; set; }
public object RotatingCommandParameter { get; set; }
public ICommand RotatedCommand { get; set; }
public object RotatedCommandParameter { get; set; }
public event EventHandler<DownUpEventArgs> Down;
public event EventHandler<DownUpEventArgs> Up;
public event EventHandler<TapEventArgs> Tapping;
public event EventHandler<TapEventArgs> Tapped;
public event EventHandler<TapEventArgs> DoubleTapped;
public event EventHandler<LongPressEventArgs> LongPressing;
public event EventHandler<LongPressEventArgs> LongPressed;
public event EventHandler<PinchEventArgs> Pinching;
public event EventHandler<PinchEventArgs> Pinched;
public event EventHandler<PanEventArgs> Panning;
public event EventHandler<PanEventArgs> Panned;
public event EventHandler<SwipeEventArgs> Swiped;
public event EventHandler<RotateEventArgs> Rotating;
public event EventHandler<RotateEventArgs> Rotated;
Я не уверен, стоит ли идти этим путем, но это выглядит как хорошая отправная точка, но теперь я застрял и не знаю, как идти дальше. Кто-нибудь делал такую похожую вещь или знает решение?
Большое спасибо