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:
public int MyProperty { get; set; }
private void slider1_ValueChanged(object sender,
RoutedPropertyChangedEventArgs<double> e)
{
(sender as Slider).Value = Math.Round(e.NewValue, 0);
}
<Slider
Name="slider1"
TickPlacement="TopLeft"
AutoToolTipPlacement="BottomRight"
ValueChanged="slider1_ValueChanged"
Value="{Binding MyProperty}"
Minimum="0" Maximum="100" SmallChange="1" LargeChange="10"
Ticks="0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100"/>
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.