例如,Microsoft Word / PowerPoint 2010中的“缩放”控件的捕捉点值为100%。
我知道有可能通过设置刻度和启用IsSnapToTickEnabled使其按特定间隔捕捉,但这不是这里的情况,其中有一个捕捉点,并且滑块可以免费用于其他值。
答案 0 :(得分:0)
您可以尝试ValueChanged
处理程序。
private void Slider_ValueChanged(
object sender,
RoutedPropertyChangedEventArgs<double> e)
{
var slider = sender as Slider;
var tick = slider.Ticks
.Where(xx => Math.Abs(e.NewValue - xx) < slider.LargeChange);
if (tick.Any())
{
var newValue = tick.First();
if (e.NewValue != newValue)
{
DispatcherInvoke(() => slider.Value = newValue);
}
}
}
示例Slider
具有以下设置:
<Slider Ticks="100.0"
Minimum="0.0"
Maximum="500.0"
Value="75.0"
SmallChange="1.0"
LargeChange="10.0"
ValueChanged="Slider_ValueChanged" />