2011-12-27 11 views
0

http://nui.joshland.org/2010/04/why-wont-wpf-controls-work-with-touch.htmlWPF Touch Events + Flicks?私はMVVMプロジェクトでここで説明するソリューションを実装しています

しかし、問題は、私は私のXAMLでのUserControlでタッチダウンとTouchUpのイベントハンドラを実装する場合、他のGroupViewを得ることができないところ、私は問題に実行することですフリックのためのウィンドウメッセージはもはや - ORフリックは処理できないので、関連するウィンドウメッセージは送信されません。

ビューのトップダウン構造は次のとおりです。 ButtonsView - タッチイベントハンドラ GroupViewを持っている - マウスイベントハンドラとフリックイベントハンドラを持っている

私はコードビハインドにして、これを使用していますフリックをフックして扱う:

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; 
    } 

思考/提案?私はWPFの初心者です。 ありがとう

答えて

0

私はマウスイベントをキャプチャし、イベントをFlickイベントでGroupViewにトンネルしないようにして、これを解決しました。

関連する問題