我想做一个滑块,根据数值的不同,显示一个带有切换情况的图像。但是用这个c#代码,它直接进入case 1。是否有可能等待用户点击和拖动,一旦停止,它就会进入我的切换情况?而且,我如何启动滑块在一个特殊的刻度,例如3?先谢谢你 这是我的c#代码。
private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
switch (Slider.Value.ToString())
{
case "0":
...
case "1":
...
}
}
这是我的按钮规格的xaml。
<Slider HorizontalAlignment="Left" Height="29" Margin="474,375,0,0" VerticalAlignment="Top" Width="172" Minimum="0" Maximum="4" IsSnapToTickEnabled="True" TickPlacement="BottomRight" Foreground="Black" Ticks="1,2,3" ValueChanged="Slider_ValueChanged" Name="Slider"/>
你可以 "开始 "的 Slider
设置 Slider.Value
在您的代码开头。您可以访问 Slider
从您的代码后缀中给它起一个名字(<Slider Name="Something" ... />
). 但通常情况下,视觉元素是通过声明 依赖属性 然后 装订 给他们。在你的情况下,你会绑定到Slider.Value
属性。
至于等到用户停止了,你可以使用这个问题的答案。https:/stackoverflow.coma7235475086631。 - 使用 Thumb.DragCompleted
而不是 Slider.ValueChanged
.
<Slider Thumb.DragCompleted="MySlider_DragCompleted" />
尽管这将等待用户完成拖动,但缺点是它会 只是 可用于拖动拇指,如果用户以其他方式(如使用方向键或点击滑块上的某处)更改值,则不会引起。
如果你使用一个依赖属性和一个绑定来代替,你可以做这样的事情。
<Slider Value="{Binding YourProperty, UpdateSourceTrigger=PropertyChanged, Delay=250}" ... />
这将为绑定添加250ms的延迟,这意味着只有在250ms内没有变化后才会更新。它不会等待用户放手,但会等待用户停止移动滑块片刻后再更新,而不是在每一个微小的变化后更新。