Я пытаюсь перевести часовую стрелку в часы, следуя жесту пальца. Я использую SkiaSharp для этого. Я застрял в прикреплении часовой стрелки к движениям жестов пальцев.
У меня есть метод Touch_Handle ниже, следующая функция получила удар и выполнила все действия, но часы (по крайней мере, сейчас пытаются переместить часы) не двигаются при прикосновении.
Xaml:
<Grid>
<skia:SKCanvasView
x:Name="canvasView"
EnableTouchEvents="true"
Touch="Handle_Touch"
PaintSurface="OnCanvasViewPaintSurface" />
</Grid>
Xaml.cs
private void Handle_Touch(object sender, SKTouchEventArgs args)
{
SKPoint point = args.Location;
switch (args.ActionType)
{
case SKTouchAction.Pressed:
if (!inProgressPaths.ContainsKey(args.Id))
{
SKPath path = new SKPath();
path.MoveTo(args.Location);
inProgressPaths.Add(args.Id, path);
((SKCanvasView)sender).InvalidateSurface();
}
break;
case SKTouchAction.Moved:
if (inProgressPaths.ContainsKey(args.Id))
{
SKPath path = inProgressPaths[args.Id];
path.LineTo(args.Location);
((SKCanvasView)sender).InvalidateSurface();
}
break;
case SKTouchAction.Released:
if (inProgressPaths.ContainsKey(args.Id))
{
completedPaths.Add(inProgressPaths[args.Id]);
inProgressPaths.Remove(args.Id);
((SKCanvasView)sender).InvalidateSurface();
}
break;
case SKTouchAction.Cancelled:
if (inProgressPaths.ContainsKey(args.Id))
{
inProgressPaths.Remove(args.Id);
((SKCanvasView)sender).InvalidateSurface();
}
break;
}
// we have handled these events
args.Handled = true;
}