Zbyt często chcę suwaka WPF, który zachowuje się jak stary System.Windows.Forms.TrackBar. Oznacza to, że chcę suwaka, który przesuwa się od X do Y, ale pozwala użytkownikowi przesuwać go tylko w dyskretnych pozycjach całkowitych.
Jak można to zrobić w WPF, ponieważ właściwość Value na suwaku jest podwójna?
Dla tych, którzy chcą przyciągać do określonych pozycji, możesz również użyć
Ticks
właściwości:źródło
Ta sztuczka przyciągania jest przydatna, ale ma ograniczenia, na przykład jeśli chcesz pokazać tylko podzbiór ważnych tików. Odniosłem sukces z dwiema alternatywami: albo powiązanie z liczbą całkowitą, albo zaokrąglenie nowej wartości. Oto połączony przykład:
Nie mam pojęcia, jak wydajność któregokolwiek z nich wypada w porównaniu z trikiem, ale nie miałem żadnych problemów *.
* Jeśli również przypiszesz wartość suwaka do typu pola tekstowego, zauważysz, że co jakiś czas, jeśli używasz myszy, pole tekstowe będzie pokazywać dziesiętne. Jeśli jednocześnie utworzysz powiązanie z intem, pusty ciąg spowoduje zgłoszenie wyjątku konwersji, który na krótko spowalnia interfejs użytkownika. Te problemy nie były na tyle poważne, żebym szukał rozwiązań.
źródło
Ticks
wartości (0, 10, 20, ...), ale wszystkie wartości pomiędzy (1, 2, ...) są prawidłowe i można je wybrać np. Za pomocą klawiszy strzałek.IsSnapToTickEnabled
właściwości.