Mam program z dwoma widokami drzewa WPF, które umożliwiają przeciąganie i upuszczanie między nimi. Problem polega na tym, że otwieranie/zamykanie przedmiotów na widokach drzew może być denerwujące, ponieważ przesunięcie myszy o jeden piksel, przytrzymując lewy przycisk myszy, uruchamia funkcję przeciągania/upuszczania. Czy jest jakiś sposób określenia, jak daleko mysz powinna się przesunąć, zanim zostanie uznana za przeciągnięcie/upuszczenie?Próg odstępu przeciągania WPF
8
A
Odpowiedz
1
Wystarczy utworzyć mały bufor do kodu, który określa, kiedy zaczyna się przeciąganie.
- flaga mysz w dół
- na ruch myszy - sprawdź mysz w dół .. jeśli tak, należy sprawdzić, czy jego przeniósł dalej niż cokolwiek bufor określić (3 pikseli to chyba dobrze)
- jeśli ma , uruchom przeciągnij.
16
Jest to parametr systemowy. Jeśli masz
Point down = {where mouse down event happened}
Point current = {position in the MouseMove eventargs}
następnie mysz przeniósł się minimalną odległość przeciągania jeśli
Math.Abs(current.X - down.X) >= SystemParameters.MinimumHorizontalDragDistance ||
Math.Abs(current.Y - down.Y) >= SystemParameters.MinimumVerticalDragDistance)
0
Following this artykuł dla przeciągnij i upuść realizacji, trzeba by obsłużyć 2 zdarzenia myszy w celu opóźnienia przeciąganie dopóki mysz nie przesunęła się o określoną odległość. Najpierw dodaj procedurę obsługi PreviewMouseDown, która przechowuje początkową pozycję myszy względem kontrolki. Nie należy używać zdarzenia MouseDown, ponieważ jest to zjawisko bąbelkowe i mogło zostać obsłużone przez kontrolkę podrzędną przed uzyskaniem kontroli.
public class DraggableControl : UserControl
{
private Point? _initialMousePosition;
public DraggableControl()
{
PreviewMouseDown += OnPreviewMouseDown;
}
private void OnPreviewMouseDown(object sender, MouseButtonEventArgs e) {
_initialMousePosition = e.GetPosition(this);
}
Dodatkowo uchwyt mouseMove sprawdzić przeniesiona dystans i ostatecznie rozpocząć operację przeciągania:
Powiązane problemy
- 1. Automatyczne przewijanie listy rozwijanej WPF podczas przeciągania
- 2. Zastąp wszystkie znaki odstępu.
- 3. Próg adaptacyjny z rozmytym obrazem
- 4. Próg adaptacyjny CIKernel/CIFilter iOS
- 5. Próg etykiety wykresu kołowego Highcharts
- 6. próg aplikacji log4j i kategoria
- 7. Ograniczanie odstępu między sekcjami UITableView
- 8. Ustawianie Vim odstępu preferencje filetype
- 9. Symulator ios: symulacja przeciągania i przeciągania
- 10. Uzyskaj pozycję myszy podczas przeciągania i upuszczania
- 11. Jak zmienić próg "touchmove" w js
- 12. Zastosuj próg opencv do tablicy numpy
- 13. Minimalny próg zasięgu kodu w Jacoco Gradle
- 14. Jak wyłączyć próg ruchu podczas pobierania dotyku?
- 15. go - drukuj bez odstępu między pozycjami
- 16. PostgreSQL jak Concat wartość odstępu '2 dni'
- 17. Skonsoliduj ciągi w Oracle SQL bez odstępu?
- 18. Ustawianie minimalnego odstępu między wierszami w kolekcjiView
- 19. Zmiana odstępu między UIBarButtonItems w iOS 8
- 20. HTML - niezłamanie odstępu między tekstem a obrazem
- 21. Niestandardowy obraz przeciągania z NSTableView jako źródłem przeciągania
- 22. Funkcja przeciągania nie działa
- 23. Wyłączanie przeciągania w karuzeli
- 24. Opcje przeciągania jquery
- 25. Zmiana kursora podczas przeciągania
- 26. WPF: Jak zezwolić na przewijanie kółkiem myszy w ListView podczas przeciągania elementów ListView?
- 27. UITableView odległość przeciągania z UIRefreshControl
- 28. Kendo ui - wyłączenie przeciągania okna
- 29. wyłączanie przeciągania i upuszczania tekstu
- 30. jQueryUI Opcja pomocnika przeciągania Pomoc
możesz pisać jakiś kod? – ChrisF