Con demasiada frecuencia quiero un control deslizante WPF que se comporte como el System.Windows.Forms.TrackBar de antaño. Es decir, quiero un control deslizante que vaya de X a Y pero que solo permita al usuario moverlo en posiciones enteras discretas.
¿Cómo se hace esto en WPF ya que la propiedad Value en el control deslizante es doble?
Para aquellos que quieran ajustar a posiciones específicas , también puede usar la
Ticks
propiedad:fuente
El truco rápido es útil pero tiene limitaciones, por ejemplo, si solo desea mostrar un subconjunto de ticks válidos. He tenido éxito con dos alternativas: enlazar a un número entero o redondear el nuevo valor. Aquí hay un ejemplo combinado:
No tengo idea de cómo se compara el rendimiento de ninguno de los dos con el truco rápido, pero no he tenido ningún problema *.
* Si también vincula el valor del control deslizante a un tipo de campo de texto, experimentará que, de vez en cuando, si usa el mouse, el campo de texto mostrará decimales. Si también se vincula a un int al mismo tiempo, la cadena vacía provocará que se lance una excepción de conversión que atasque brevemente la interfaz de usuario. Estos problemas no han sido lo suficientemente graves como para buscar soluciones.
fuente
Ticks
valores (0, 10, 20, ...) pero todos los valores intermedios (1, 2, ...) son válidos y se pueden seleccionar con, por ejemplo, las teclas de flecha.IsSnapToTickEnabled
propiedad.