private void TangramTable_OnMultiTouchReceived(MultiTouchEventArgs args) { foreach (FingerEventArgs finger in args.FingerEvents) { switch (finger.EventType) { case FingerEventType.FINGER_DOWN_EVENT: AddNewPiePiece(finger); break; case FingerEventType.FINGER_OUT_EVENT: case FingerEventType.FINGER_UP_EVENT: if (_holdFingerList.ContainsKey(finger.FingerID)) RemovePiePiece(finger); break; case FingerEventType.FINGER_MOVE_EVENT: if (_holdFingerList.ContainsKey(finger.FingerID)) { double distance = (finger.Position - _holdFingerPositionList[finger.FingerID]).Length; if (distance > this._holdRaidus) RemovePiePiece(finger); } break; } } }
private void GetMultiTouchInput(ScatterRectangle rectangle, MultiTouchEventArgs args) { ScatterRectangle obj; foreach (FingerEventArgs e in args.FingerEvents) { switch (e.EventType) { case FingerEventType.FINGER_DOWN_EVENT: case FingerEventType.FINGER_IN_EVENT: obj = HitTest(rectangle, e); // Since each ScatterRectangle is a rectangle but actually some are triangles, we need get the real "rectangle" according to the color of the mouse hit position if (obj == null) return; OnNewContact(obj, e); break; case FingerEventType.FINGER_MOVE_EVENT: OnContactMove(rectangle, e); break; case FingerEventType.FINGER_OUT_EVENT: case FingerEventType.FINGER_UP_EVENT: OnContactRemoved(rectangle, e); break; } } args.Handled = true; }