【问题标题】:"Spring" wpf slider control“弹簧” wpf 滑块控件
【发布时间】:2011-09-18 18:40:17
【问题描述】:

如何在 Wpf 4 -“Spring”-滑块控件中进行控制? Thumb 总是回到设定点 0, 松开拇指后,它像“春天”一样跳到开头。 干杯 丢

【问题讨论】:

    标签: wpf slider


    【解决方案1】:

    您可以在 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 中完成,但您可能会发现使用代码隐藏更容易实现“弹性”滑块的全功能实现。

    【讨论】:

    • Hey Diu,看起来 From 属性的默认评估存在问题,显式绑定解决了该问题(更新解决方案以反映这一点)。 DoubleAnimation 的默认持续时间为 1 秒,但您可以设置 Duration="0:0:0" 如果您希望它立即将滑块重置为零而不使用任何动画。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 2011-12-10
    • 2018-03-11
    相关资源
    最近更新 更多