Allzu oft möchte ich einen WPF-Schieberegler, der sich wie die alte System.Windows.Forms.TrackBar verhält. Das heißt, ich möchte einen Schieberegler, der von X nach Y wechselt, dem Benutzer jedoch nur das Verschieben in diskrete ganzzahlige Positionen ermöglicht.
Wie macht man das in WPF, da die Value-Eigenschaft auf dem Slider doppelt ist?
Für diejenigen, die an bestimmten Positionen fangen möchten , können Sie auch die
Ticks
Eigenschaft verwenden:quelle
Der Snap-Trick ist praktisch, weist jedoch Einschränkungen auf, z. B. wenn Sie nur eine Teilmenge gültiger Ticks anzeigen möchten. Ich hatte Erfolg mit zwei Alternativen: entweder an eine ganze Zahl binden oder den neuen Wert runden. Hier ist ein kombiniertes Beispiel:
Ich habe keine Ahnung, wie die Leistung von beiden im Vergleich zum Snap-Trick ist, aber ich hatte keine Probleme *.
* Wenn Sie auch bind der Wert des Schiebers auf eine Art von Textfeld erleben Sie , dass jeder einmal in einer Weile mit der Maus , wenn verwendet, wird das Textfeld Dezimalstellen zeigen. Wenn Sie gleichzeitig auch an ein int binden, wird durch die leere Zeichenfolge eine Konvertierungsausnahme ausgelöst, die die Benutzeroberfläche kurzzeitig blockiert. Diese Probleme waren nicht schwerwiegend genug, um nach Lösungen zu suchen.
quelle
Ticks
Werten (0, 10, 20, ...) fangen , aber alle dazwischen liegenden Werte (1, 2, ...) sind gültig und können mit z. B. Pfeiltasten ausgewählt werden.IsSnapToTickEnabled
Eigenschaft vorhanden ist.