wie Sie vermeiden, klicken Sie auf, wenn ich wollen, Doppel-klicken Sie auf?
Ich habe eine Anwendung in WPF und ein button. In diesem buttun möchte ich das click-Ereignis implementieren Sie einen code, aber ich möchte, dass, wenn Sie das tun, doppelklicken Sie mit der Maus, führen Sie andere code aber nicht den code für das click-Ereignis.
Das problem ist, dass der code das click-Ereignis wird immer ausgeführt und ich weiß nicht, ob es einen Weg gibt, um zu vermeiden, die Ausführung der click-Ereignis, wenn ich doulbe klicken.
Ich bin Folgen Sie dem MVVM-pattern, und ich benutze das MVVM light konvertieren Sie das Ereignis in einem Befehl.
Dank.
- Nicht euer button haben die
OnMouseDoubleClick
Veranstaltung ? - Ja mein Knopf hat zwei Ereignisse, die das click-Ereignis-und-Maus-Doppel-Klick-Ereignis.
- Also warum nicht schreiben Sie den code, den Sie ausführen möchten, in der
OnMouseDoubleClick
Veranstaltung gibt ? - Becasu möchte ich zwei verschiedene codes. Ein code, wenn der Einsatz ein und klicken Sie auf andere Benutzer, wenn der Benutzer doppelt auf. Ich brauche, um zu unterscheiden, wenn die Nutzung nicht die eine oder andere Aktion.
- Schauen Sie sich den link in meiner Antwort. Es zeigt Ihnen, wie zu unterscheiden zwischen dem normalen klicken und doppelklicken. Und basiert auf, die Sie verwenden können, was auch immer code, den Sie brauchen, in der Klick-und Doppelklick.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legen Sie die RoutedEvent s e.Handled auf True, nach dem Umgang mit der MouseDoubleClick-Ereignis-block zweiten click-events gefeuert.
Wenn Sie möchten, zu blockieren, klicken Sie zunächst auf Ereignis Verhalten, können Sie timer verwenden:
Auf das Ereignis klicken, können Sie überprüfen die Menge der Klicks in den EventArgs zum Beispiel;
Das heißt, Sie können differenzieren zwischen einfachen und doppelten Klicks manuell, wenn es das ist, was Sie sich wünschen.
Hier ist eine schöne Erklärung, wie die Unterscheidung zwischen Klicks und Doppelklicks. Und es gibt Sie 2. B. wie können Sie erreichen, dass.
Teilte ich diese Lösung, das ist eine Mischung zwischen den beiden anderen Lösungen. Ich kann keine akzeptierte Lösung für beide, sorry.
Nutzen, wenn ich die PreviewMouseLeftButtonDown um zu Steuern, Wann ist single klicken Sie auf oder doppelklicken Sie arbeitet, statt mit zwei Veranstaltungen (Klick und Doppelklick).
Also ich löse das problem mit diesem code:
Diese erste Methode die Kontrolle der mit der Maus klicken.
Diese Methode ist die Methode, die mit der DispatcherTimer, dass wird ausgeführt, wenn nicht aufgehört wird, mit dem zweiten Klick der Maus.
Den dispatcherTimer erzeugen, ist im Konstruktor der view-Modell
Intervall 250ms, das ist das Intervall, das ist die Zeit, die der Benutzer hat einen Doppelklick.
In dieser Lösung, ich benutze den gleichen Weg zu stoppen die dispatcherTimer -, die stop () - Methode, aber aus irgendeinem Grund, wenn ich die beiden Ereignisse (klicken und mouseDoubleClick) die dispatcherTimer-ist nicht gestoppt-im doppelten klicken und wenn ich das MouseLeftButtonDown-Ereignis die Lösung funktioniert.