private void PostProcessInput(object sender, ProcessInputEventArgs e) { InputReportEventArgs input = e.StagingItem.Input as InputReportEventArgs; if (input != null && input.RoutedEvent == InputManager.InputReportEvent) { RawGenericInputReport report = input.Report as RawGenericInputReport; if (report != null) { if (!e.StagingItem.Input.Handled) { GenericEvent ge = (GenericEvent)report.InternalEvent; GenericEventArgs args = new GenericEventArgs( this, report.InternalEvent); args.RoutedEvent = GenericEvents.GenericStandardEvent; if (report.Target != null) { args.Source = report.Target; } e.PushInput(args, e.StagingItem); } } } }
protected virtual void OnGenericEvent(GenericEventArgs e) { GenericEvent genericEvent = e.InternalEvent; switch (genericEvent.EventCategory) { case (byte)EventCategory.Gesture: { TouchGestureEventArgs ge = new TouchGestureEventArgs(); ge.Gesture = (TouchGesture)genericEvent.EventMessage; ge.X = genericEvent.X; ge.Y = genericEvent.Y; ge.Arguments = (ushort)genericEvent.EventData; if (ge.Gesture == TouchGesture.Begin) { OnTouchGestureStarted(ge); } else if (ge.Gesture == TouchGesture.End) { OnTouchGestureEnded(ge); } else { OnTouchGestureChanged(ge); } break; } default: { break; } } }
private static void OnGenericEventThunk(object sender, GenericEventArgs e) { ((UIElement)sender).OnGenericEvent(e); }