Trop souvent, je veux un curseur WPF qui se comporte comme l'ancien System.Windows.Forms.TrackBar. Autrement dit, je veux un curseur qui va de X à Y mais qui permet uniquement à l'utilisateur de le déplacer dans des positions entières discrètes.
Comment faire cela dans WPF puisque la propriété Value sur le Slider est double?
Pour ceux qui souhaitent s'aligner sur des positions spécifiques , vous pouvez également utiliser la
Ticks
propriété:la source
L'astuce d'accrochage est pratique mais présente des limites, par exemple si vous souhaitez afficher uniquement un sous-ensemble de graduations valides. J'ai eu du succès avec deux alternatives: soit lier à un entier, soit arrondir la nouvelle valeur. Voici un exemple combiné:
Je n'ai aucune idée de comment la performance de l'un ou l'autre se compare à l'astuce instantanée mais je n'ai eu aucun problème *.
* Si vous liez également la valeur du curseur à un type de champ de texte, vous constaterez que, de temps en temps si vous utilisez la souris, le champ de texte affichera des décimales. Si vous vous liez également à un int en même temps, la chaîne vide provoquera la levée d'une exception de conversion qui embourbera brièvement l'interface utilisateur. Ces problèmes n'ont pas été suffisamment graves pour que je recherche des solutions.
la source
Ticks
valeurs (0, 10, 20, ...) mais toutes les valeurs intermédiaires (1, 2, ...) sont valides et peuvent être sélectionnées avec par exemple les touches fléchées.IsSnapToTickEnabled
propriété.