J'implémentent la solution décrite ici dans un projet MVVM: http://nui.joshland.org/2010/04/why-wont-wpf-controls-work-with-touch.htmlWPF Touch Events + Flicks?
Mais le problème est que si je mets en œuvre les gestionnaires TouchDown et événements TouchUp dans le UserControl dans mon XAML alors je lance un problème où les autres GroupView ne peut pas obtenir les messages de fenêtre pour les films - OU les films ne peuvent pas être traités de sorte que leur message de fenêtre associé ne soit jamais envoyé.
La structure descendante des vues est: ButtonsView - a touch gestionnaires d'événements GroupView - a des gestionnaires d'événements de souris et les gestionnaires d'événements Flicks
J'utilise cela dans le code-behind de accrocher les films et les manipuler:
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
HwndSource source = PresentationSource.FromVisual(this) as HwndSource;
source.AddHook(WndProc);
}
private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
if (msg == Flicks.WM_TABLET_FLICK)
{
Flick flick = Flicks.ProcessMessage(lParam, wParam);
if (flick != null)
{
if (flick.Data.Direction == FLICKDIRECTION.FLICKDIRECTION_LEFT)
Scroller("left"); //scrolls left
else if (flick.Data.Direction == FLICKDIRECTION.FLICKDIRECTION_RIGHT)
Scroller("right"); //scrolls right
else if (flick.Data.Direction == FLICKDIRECTION.FLICKDIRECTION_UP)
Scroller("up"); //move up
else if (flick.Data.Direction == FLICKDIRECTION.FLICKDIRECTION_DOWN)
Scroller("down"); //move down
handled = true;
}
}
return IntPtr.Zero;
}
Pensées/Suggestions? Je suis assez nouveau à WPF. Merci