private static void CheckPointer() { try { if (pointerId == 0) { return; } var pointerPoint = PointerPoint.GetCurrentPoint(pointerId); Queue.Enqueue(pointerPoint); if (Queue.Count() == QueueLimit && Queue.All(pp => pp.IsInContact)) { var maxY = Queue.Max(pp => pp.Position.Y); var minY = Queue.Min(pp => pp.Position.Y); var firstPosition = Queue.First().Position.X; var lastPosition = Queue.Last().Position.X; if (Math.Abs(maxY - minY) < YTollerance && Math.Abs(firstPosition - lastPosition) > XSwipethreshold) { SwipeMessage message = firstPosition - lastPosition > XSwipethreshold ? SwipeMessage.Left as SwipeMessage : SwipeMessage.Right as SwipeMessage; Messenger.Default.Send(message); Queue.Clear(); } } } catch { // TODO add logger } }