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?
Erstellen Sie einfach einen kleinen Puffer in Ihrem Code, der bestimmt, wann der Ziehvorgang beginnt.
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%Tags und Links wpf c# treeview drag-and-drop