2013-04-17 14 views
6

Mam wiele filmów w ScrollViewer i kiedy klikam na jeden z tych filmów Odtwarzam i mam film na pełnym ekranie i gdzie poruszam się z paskiem przewijania Porusza się z filmami. To jest w porządku. Wdrożyłem to poprzez dodanie przycisku myszy do elementu multimedialnego, a teraz testuję to na ekranie dotykowym i działa.WPF - gesty dotykowe - zablokowane kliknięcie myszą w przypadku przewijania

Ale chcę rozróżnić kliknięcie wideo i poruszanie się w tym obszarze. Ten użytkownik nie chce "wybrać" wideo, ale po prostu porusza się z obszarem, ale nie na pasku przewijania, ale w obszarze z filmami. W celu lepszego zrozumienia dodałem obrazek: Example

Aby WPF odróżniało kliknięcie i ruch (aby oba wywoływały, ale wciąż wywoływały tylko jeden). Jaki jest najlepszy sposób na zrobienie tego? Dzięki

+0

Z góry mojej głowy, czy następujące czynności? Wykryj zdarzenie TouchDown, ustaw np. '_touchDown = true', w zdarzeniu Click, jeśli" _touchDown "jest prawdziwe, nie wykonuj wyboru wideo, w zestawie zdarzeń TouchUp" _touchDown = false ". –

Odpowiedz

2

Bardzo trudno jest poradzić sobie z zdarzeniami dotykowymi na własną rękę, szczególnie gdy musisz obsługiwać zagnieżdżone kontrolki.

Myślę, że najprostszym sposobem rozwiązania tego jest, aby używać Microsoft Surface Touch Pack

Wymień Scrollview z SurfaceScrollView i umieścić przezroczysty SurfaceButton nad swoimi MediaElements i reagować na Click zdarzenia (lub obsługiwać go za pomocą polecenie).

W ten sposób Microsoft wykonuje dla Ciebie skomplikowane przesuwanie (przewijanie) lub stukanie (klikanie). I jako miły efekt uboczny, dostajesz takie rzeczy jak podskakiwanie i interia z ScrollViewer za darmo.