我试图在用户完成拖动拇指或点击移动到特定点后获取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;
}
答案 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的属性或获取值。