Trik snap berguna tetapi memiliki batasan, misalnya jika Anda hanya ingin menampilkan subset dari tick yang valid. Saya telah sukses dengan dua alternatif: mengikat ke integer atau membulatkan nilai baru. Berikut adalah contoh gabungannya:
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"/>
Saya tidak tahu bagaimana kinerja keduanya dibandingkan dengan trik jepret tetapi saya tidak mengalami masalah *.
* Jika Anda juga mengikat nilai slider ke jenis bidang teks, Anda akan mengalami hal itu, sesekali jika menggunakan mouse, bidang teks akan menampilkan desimal. Jika Anda juga mengikat ke int pada saat yang sama, string kosong akan menyebabkan pengecualian konversi dilemparkan yang secara singkat menghambat UI. Masalah ini belum cukup parah bagi saya untuk mencari solusinya.