WPF-Schleppabstandschwelle

8

Ich habe ein Programm mit zwei WPF-Baumansichten, die das Ziehen und Ablegen zwischen den beiden erlauben. Das Problem ist, dass es lästig sein kann, Elemente auf den Baumansichten zu öffnen / zu schließen, da das Bewegen der Maus nur ein Pixel bei gedrückter linker Maustaste die Drag / Drop Funktionalität auslöst. Gibt es eine Möglichkeit anzugeben, wie weit sich die Maus bewegen soll, bevor sie als Ziehen / Ablegen betrachtet wird?

    
j0k 14.01.2010, 22:44
quelle

3 Antworten

16

Dafür gibt es einen Systemparameter. Wenn Sie

haben %Vor%

dann hat die Maus die minimale Schleppdistanz verschoben, wenn

%Vor%     
vanmelle 13.03.2010 05:57
quelle
1

Erstellen Sie einfach einen kleinen Puffer in Ihrem Code, der bestimmt, wann der Ziehvorgang beginnt.

  1. Markieren Sie die Maus nach unten
  2. beim Bewegen der Maus - prüfen Sie, ob die Maus gedrückt ist. Wenn ja, prüfen Sie, ob es sich weiter als der von Ihnen angegebene Puffer bewegt hat (3 Pixel sind wahrscheinlich gut)
  3. Wenn dies der Fall ist, starten Sie das Ziehen.
mdm20 14.01.2010 22:59
quelle
0

Folgender dieser Artikel zum Ziehen und Ablegen Bei der Implementierung müssten Sie 2 Mausereignisse handhaben, um das Ziehen zu verzögern, bis die Maus eine bestimmte Entfernung zurückgelegt hat. Fügen Sie zuerst einen Handler für PreviewMouseDown hinzu, der die anfängliche Mausposition relativ zu Ihrem Steuerelement speichert. Verwenden Sie nicht das MouseDown-Ereignis, da es ein bubbling -Ereignis ist und möglicherweise von einem untergeordneten Steuerelement behandelt wurde, bevor Sie Ihr Steuerelement erreichen.

%Vor%

Behandeln Sie zusätzlich mit MouseMove die verschobene Entfernung, und führen Sie schließlich den Ziehvorgang aus:

%Vor%     
ckuepker 26.10.2017 12:30
quelle

Tags und Links