“Spring”wpf滑块控件

时间:2011-09-14 11:58:42

标签: wpf slider

我如何在Wpf 4中制作 - “Spring”-slider控件? 拇指总是回到设定点0, 释放拇指后,它会像“弹簧”一样跳到开头。 干杯 丢

1 个答案:

答案 0 :(得分:0)

你可以使用触发器在XAML中执行此操作(这只是在拇指释放时恢复,持续时间为一秒)

        <Slider x:Name="slider">
        <Slider.Triggers>
            <EventTrigger SourceName="slider" RoutedEvent="Thumb.DragCompleted">    
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetName="slider" Storyboard.TargetProperty="Value" From="{Binding Value, ElementName=slider}" To="0" Duration="0:0:1"/>
                    </Storyboard>
                </BeginStoryboard>          
            </EventTrigger>
        </Slider.Triggers>              
    </Slider>

但是,这不会捕获滑块上的步骤或直接设置Value属性的点击次数。要完全捕获这个,您需要监听所有三个事件(Thumb.DragCompleted,Thumb.DragStarted和Slider.ValueChanged),并确保在拖动拇指时不应用任何动画。您还需要自定义动画的持续时间,因为它具有恒定的时间,而不是恒定的速度。

虽然可以在XAML中完全完成,但您可能会发现使用代码隐藏更容易实现“弹性”滑块的全功能实现。