2013-04-17 10 views
6

Ich habe mehrere Videos in ScrollViewer und wenn ich auf eines dieser Videos klicke Es spielt und ich habe Film auf Vollbild und wohin ich mit der Bildlaufleiste bewegte Es bewegt sich mit Videos. Das ist in Ordnung. Ich habe dies implementiert, indem ich einen Mausklick auf das Medienelement hinzugefügt habe und jetzt teste ich dies auf dem Touchscreen und es funktioniert.WPF - Touch Gesten - unterdrückt Mausklick beim Scrollen

Aber ich möchte unterscheiden zwischen Klick auf Video und Bewegung in diesem Bereich. Dieser Benutzer möchte kein Video auswählen, aber er bewegt sich nur mit dem Bereich, aber nicht in der Bildlaufleiste, sondern im Bereich mit Videos. Zum besseren Verständnis habe ich Bild hinzugefügt: Example

Um WPF unterscheiden zwischen Klick und verschieben (um beide haben aber immer noch nur einen Anruf). Was ist der beste Weg, dies zu tun? Danke

+0

Von meinem Kopf funktioniert die folgende Arbeit? Ermitteln des TouchDown-Ereignisses, z. '_touchDown = true', in deinem Click-Ereignis, wenn' _touchDown' wahr ist, führe die Videoauswahl nicht aus, in deinem TouchUp-Event-Set '_touchDown = false'. –

Antwort

2

Es ist sehr schwierig, Berührungsereignisse auf eigene Faust zu behandeln, besonders wenn Sie geschachtelte Steuerelemente behandeln müssen.

Ich denke, der einfachste Weg, dies zu lösen, damit Sie die Microsoft Surface Touch Pack

Ersetzen Sie Ihre Scrollview mit einem SurfaceScrollView zu verwenden ist und eine transparente SurfaceButton über das MediaElements platzieren und auf dem Click-Ereignis reagieren (oder damit umgeht über der a-Befehl).

Auf diese Weise macht Microsoft das knifflige Panning (Scrollen) oder Antippen (Klicken) für Sie. Und als netten Nebeneffekt bekommst du Sachen wie Bouncing und Interia des ScrollViewers kostenlos dazu.