拖动后获取WPF Slider值

时间:2016-09-27 11:23:22

标签: c# wpf events slider

我试图在用户完成拖动拇指或点击移动到特定点后获取WPF Slider值。

我希望通过收听某种事件来保存db中的新值。我怎么能这样做?

我在这个问题上尝试了解决方案,但我最终没有 - WPF: Slider with an event that triggers after a user drags

每次多次进入活动

感谢。

XAML:

<Slider Value="{Binding VoipVolume}" MouseLeftButtonUp="slider_MouseLeftButtonUp"/>

代码隐藏:

public double VoipVolume
    {
        get { return (double)GetValue(VoipVolumeProperty); }
        set
        {
            SetValue(VoipVolumeProperty, value);
            VolumeChanged(value);
        }
    }

private void VolumeChanged(object value)
    {
        StationViewModel viewModel = this.DataContext as StationViewModel;

        if (viewModel != null)
        {
            if (end)
            {
                viewModel.OnVolumeChange((float)VoipVolume);
                end = false;
            }
        }
    }
    bool end = false;


    private void slider_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        end = true;
    }

3 个答案:

答案 0 :(得分:0)

如果您使用的是FW 4.5或更高版本,请尝试使用&#34; Dalay&#34;属性。

http://www.jonathanantoine.com/2011/09/21/wpf-4-5-part-4-the-new-bindings-delay-property/

答案 1 :(得分:0)

我们没有选择,最后我们使用TickFrequency,因为我们需要将滑块中的更改保存到db,并且我们不希望每0.001次都发生这种情况。

非常感谢..

答案 2 :(得分:-1)

可能重复。希望这可以帮到你:stackoverflow.com/a/723547/1611490

 <Slider Thumb.DragCompleted="MySlider_DragCompleted" />

并在MySlider_DragCompleted事件下,更新VM的属性或获取值。