关闭

win10 uwp 获得Slider拖动结束的值

标签: uwpwin10
449人阅读 评论(0) 收藏 举报
分类:

本文讲的是如何获得Slider移动结束的值,也就是触发移动后的值。如果我们监听ValueChanged,在我们鼠标放开之前,只要拖动不放,那么就不停触发,而我们可能要得到事件是拖动结束后,那么我们如何获得。

在WPF,我们可以使用Thumb.DragCompleted,连接:http://stackoverflow.com/questions/723502/wpf-slider-with-an-event-that-triggers-after-a-user-drags,这个在UWP没有,所以我们没法使用这个。

但是可以使用鼠标放开的值,在 UWP 把触摸放开、鼠标这些叫 Pointer 那么是否监听 PointerReleased 就可以获得鼠标放开,实际监听也拿不到事件。

开始写一个简单页面

      <Slider PointerReleased="UIElement_OnPointerReleased"></Slider>

然后后台使用 F12 生成代码,不需要写什么,但是在函数开始写断点,断点可以按 F9 就可以。这时候使用 F5 运行项目,可以看到,在鼠标松开不会进入断点。

那么是否有其他事件可以使用?实际上只有 SizeChanged ,他无法获得鼠标松开的值,也就是拖动结束的值。所以还是需要使用 PointerReleased ,为何这个函数不会进入?因为ms在注释写 请注意,并不保证 Press 操作结束会激发 Windows.UI.Xaml.UIElement.PointerReleased 事件;可能会改为激发其他事件。如果需要监听这个事件需要使用代码。

原因就是在底层进入 PointerReleased 使用了 e.Handle = true ,在 UWP 的路由事件,如果一个元素已经被设置事件处理,那么一般添加的事件函数就不会执行,如果需要这个事件函数执行,那么需要使用后台代码说无论是否在底层有处理,都需要触发,这样就可以使用在鼠标放开拿到值。

首先修改界面,给元素名称,然后打开后台代码,添加一段特殊的代码。

      <Slider x:Name="Slider"></Slider>

        public MainPage()
        {
            this.InitializeComponent();
            Slider.AddHandler(UIElement.PointerReleasedEvent /*哪个事件*/, new PointerEventHandler(UIElement_OnPointerReleased) /*使用哪个函数处理*/, true /*如果在之前处理,是否还使用函数*/);
        }

这样,垃圾ms在底层处理,现在还是可以获得,因为设置了如果在之前处理,还使用定义的函数,这时在 UIElement_OnPointerReleased 就可以获得鼠标松开的值。

参见:UWP开发大坑之—路由事件 - 快乐 就在你的心 的博客

源代码:[免费]SlideMove 1.0-CSDN下载

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

1
0
查看评论

【UWP通用应用开发】控件、应用栏

控件的属性、事件与样式资源如何添加控件添加控件的方式有多种,大家更喜欢下面哪一种呢?1)使用诸如Blend for Visual Studio或Microsoft Visual Studio XAML设计器的设计工具。 2)在Visual Studio XAML编辑器中将控件添加到XAML代码中。...
  • NoMasp
  • NoMasp
  • 2015-12-11 14:28
  • 6185

uwp开发:Slider控件和MediaElement绑定,实现拖动播放.

1、实现原理: Slider拖动时,Value值改变,MediaElement播放时,Position值改变。所以,只需将Slider的Value属性和MediaElement的Position属性进行绑定即可。 2、实现方法: Slider的Value属性是double类型的,而...
  • xuzhongxuan
  • xuzhongxuan
  • 2016-12-11 20:06
  • 757

win10 uwp 获得Slider拖动结束的值

本文讲的是如何获得Slider移动结束的值,也就是触发移动后的值。如果我们监听ValueChanged,在我们鼠标放开之前,只要拖动不放,那么就不停触发,而我们可能要得到事件是拖动结束后,那么我们如何获得。
  • lindexi_gd
  • lindexi_gd
  • 2017-09-29 14:12
  • 449

asp.net--slider控件

.aspx代码如下:                 #div_nav{ width:200px;}         #div_cont...
  • yayun0516
  • yayun0516
  • 2014-12-11 19:52
  • 1073

关于UISlider监听滑动结束状态

监听UISlider的滑动结束事件
  • mapleXK
  • mapleXK
  • 2016-05-10 15:45
  • 3405

win10 uwp 拖动控件

我们会使用控件拖动,可以让我们做出好看的动画,那么我们如何移动控件,我将会告诉大家多个方法。其中第一个是最差的,最后的才是我希望大神你去用。
  • lindexi_gd
  • lindexi_gd
  • 2017-04-19 20:02
  • 1243

UWP: Win10 软件开发之学习笔记(2017.5.11更新)

现代操作系统应用开发以下是我个人的学习笔记,欢迎大家提出疑问,我们一起探讨。github1.XAML XAML只是特定格式的XML,它遵循所有XML的规则。XML的使用者就是将我们的代码变成windows10可执行文件的编译器; XAML是一种简单的创建类的实例并设置属性的方法,代码量比C#节省了很...
  • linwh8
  • linwh8
  • 2017-03-22 20:02
  • 1284

vbs脚本:AppendLine

Rem : =========== 追加单行文本,文件不存在创建文件 Rem : =========== 文件必须存在 Rem : =========== line 中可以是单行,也可以是多行文本, Sub AppendLine( file, line ) Dim f f ...
  • bj_wellcome
  • bj_wellcome
  • 2010-08-09 22:11
  • 430

NSSlider实现捕捉滑动开始时刻和结束时刻的方法,以及进行点击跳转

NSSlider是iOS原生的一个进度kong
  • u014131398
  • u014131398
  • 2014-08-09 09:18
  • 1359

win10 uwp 获得缩略图

有时候需要获得文件或视频的缩略图。 本文提供两个方法,用于获得文件的缩略图和截取视频指定时间的显示图片。
  • lindexi_gd
  • lindexi_gd
  • 2017-06-29 09:59
  • 1042
    个人资料
    • 访问:625984次
    • 积分:9175
    • 等级:
    • 排名:第2408名
    • 原创:240篇
    • 转载:16篇
    • 译文:25篇
    • 评论:240条
    博客专栏
    文章分类
    最新评论