Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 8 XAML Windows应用商店应用-忽略滑块。拖动过程中更改了值_Windows 8_Slider_Windows Store Apps - Fatal编程技术网

Windows 8 XAML Windows应用商店应用-忽略滑块。拖动过程中更改了值

Windows 8 XAML Windows应用商店应用-忽略滑块。拖动过程中更改了值,windows-8,slider,windows-store-apps,Windows 8,Slider,Windows Store Apps,Slider.ValueChanged事件的默认行为是在用户拖动控件时触发ValueChanged多次。是否有办法仅在拖动结束时触发此事件 我已经尝试过的一件事是绑定Thumb.DragStarted和Thumb.DragCompleted事件,并添加一些标志来控制过程,但如果用户单击滑块主体,则不会触发这些事件,拇指外部。如果不想自定义控件,可以处理键控事件和指针捕获丢失事件,而不是处理值更改事件 private void slider_PointerCaptureLost(object se

Slider.ValueChanged事件的默认行为是在用户拖动控件时触发ValueChanged多次。是否有办法仅在拖动结束时触发此事件


我已经尝试过的一件事是绑定Thumb.DragStarted和Thumb.DragCompleted事件,并添加一些标志来控制过程,但如果用户单击滑块主体,则不会触发这些事件,拇指外部。

如果不想自定义控件,可以处理
键控
事件和
指针捕获丢失
事件,而不是处理
值更改
事件

private void slider_PointerCaptureLost(object sender, PointerRoutedEventArgs e)
{
    HandleSliderValueChange();
}

private void slider_KeyUp(object sender, KeyRoutedEventArgs e)
{
    //Make sure an arrow key, Home, or End was pressed
    //either explicitly perform the flag checks
    //if(e.Key.HasFlag(VirtualKey.Up & VirtualKey.Down & VirtualKey.Left & VirtualKey.Right & VirtualKey.Home & VirtualKey.End))

    //or check the int values
    int keyVal = (int)e.Key;
    if(keyVal >= 35 && keyVal <= 40)
       HandleSliderValueChange();
}

private void HandleSliderValueChange()
{
    //your value changed code
}
private void slider\u PointerCaptureLost(对象发送方,PointerRoutedEventArgs e)
{
HandleSliderValueChange();
}
私有无效滑块\u KeyUp(对象发送器,KeyRoutedEventArgs e)
{
//确保按了箭头键、Home或End
//或者显式地执行标志检查
//if(e.Key.HasFlag(VirtualKey.Up&VirtualKey.Down&VirtualKey.Left&VirtualKey.Right&VirtualKey.Home&VirtualKey.End))
//或者检查int值
int-keyVal=(int)e.Key;

如果(keyVal>=35&&keyVal,我认为更好的解决方案是限制ValueChanged事件。