Уловка с привязкой удобна, но имеет ограничения, например, если вы хотите показать только подмножество допустимых отметок. Я добился успеха с двумя альтернативами: либо привязать к целому числу, либо округлить новое значение. Вот комбинированный пример:
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"/>
Я понятия не имею, как производительность любого из них сравнивается с трюком с оснасткой, но у меня не было никаких проблем *.
* Если вы также привяжете значение ползунка к типу текстового поля, вы будете испытывать, что время от времени при использовании мыши в текстовом поле будут отображаться десятичные знаки. Если вы также привяжетесь к int в то же время, пустая строка вызовет исключение преобразования, которое ненадолго задержит пользовательский интерфейс. Эти проблемы были недостаточно серьезными, чтобы я мог искать решения.