专栏首页林德熙的博客win10 uwp 获得Slider拖动结束的值

win10 uwp 获得Slider拖动结束的值

本文讲的是如何获得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下载

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • win10 uwp 获得Slider拖动结束的值

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

    林德熙
  • 如何在 Windows 10 中移除 Internet Explorer 浏览器 如何通过控制面板删除 Internet Explorer 浏览器通过 PowerShell 删

    现在 Internet Explorer (IE)已经过时了,可以通过控制面板移除这个古老但是依然是一个伟大的浏览器

    林德熙
  • WPF HandyControl 已支持给任意控件通过按下移动抬起封装点击事件

    著名的 HandyControl 已经支持给任意控件通过按下移动抬起事件,封装点击事件

    林德熙
  • win10 uwp 获得Slider拖动结束的值

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

    林德熙
  • ANR问题的定位与分析

    ANR问题,相信是日常应用测试中,各位小伙伴都会遇到的问题。本篇对ANR的类型、原因及出现场景、以及ANR定位与分析思路进行了总结!

    用户5521279
  • kafka日志段如何读写?

    之所以写这篇文章是因为之前面试时候被面试官问到(倒)了,面试官说:“你说你对Kafka比较熟?看过源码? 那说说kafka日志段如何读写的吧?”

    Java3y
  • 面对万亿市场,AIoT如何真正实现“智能+”?

    2017年的两会报告想必有许多人印象深刻,因为那一次的政府工作报告中首次出现了“人工智能”。

    镁客网
  • 有感《全国计算机等级考试

    当理论水平与实践能力达到相应级别(比如四级)所要求的程度时,可以考虑去考,这只是一个检查自我的过程!而不是终点!!! 我非计算机专业,1996年在校时通过初级...

    阿敏总司令
  • 用tensorflow学习贝叶斯个性化排序(BPR)

        在贝叶斯个性化排序(BPR)算法小结中,我们对贝叶斯个性化排序(Bayesian Personalized Ranking, 以下简称BPR)的原理做了...

    刘建平Pinard
  • 你真的搞懂logrotate了吗? 原

    centos系统中默认安装logrotate,logrotate主配置文件:/etc/logrotate.conf,其中定义了系统默认的logrotate规则,...

    阿dai学长

扫码关注云+社区

领取腾讯云代金券