私はこのWPFの世界にちょっと慣れていません。そして、スクロールビューがタッチイベントを消費している理由についてちょっと混乱しています。
私の現在の状況は次のとおりです。
この ScrollViewer には ItemsControl があります。この ItemsControl では、Wrappanel を使用して多数の Rectangle を表示しています。私の ScrollViewer は、垂直方向にスクロールして、下にラップされた Rectangles を表示できるようにする必要があります。これらの各 Rectangles で、あらゆる種類のハンドラーを使用して CustomBehaviour を作成しました。これらのハンドラーの 1 つは、LongPressGestures を処理するために「創造的に」作られた方法です。
問題は次のとおりです。長押しが動作によって検出される前に、ScrollViewer が PreviewTouchMove ハンドラーで TouchDevice をキャプチャしています。
ScrollViewer が TouchDevice を早期にキャプチャしないようにするにはどうすればよいですか? ScrollViewer をスクロールして、LongPress、DoubleClick (これは引き続き機能します)、SingleClick (これも同様に機能します)、およびこのカスタム動作に追加する可能性のあるその他のジェスチャを実行できるようにするにはどうすればよいですか?
stackoverflow と google で同様の質問を見つけましたが、特定のケースではわかりません。
CustomThumb を使用したもの<-- このリンクは、CustomThumb を作成することで問題を解決します。これをどうにかして自分の行動に再利用できますか?動作ハンドラの早い段階で TouchDevice をキャプチャすることによって?
すべてが失敗した場合。この ScrollViewer と CustomBehaviour の組み合わせに代わるものはありますか?
編集:
その間。CustomThumb メソッドを再試行しました。UIElements (その動作を伴う) が ScrollViewer に配置されている間に、CustomBehaviour から長押しが機能するようになりました。ただし、ScrollViewer のスクロール機能はまだ機能しません。私が追加した報奨金は、それを再び適切に機能させるのを手伝ってくれた人にも授与されます (答えはこの CustomThumb ソリューションと同じ方向にあるはずなので)。