当前位置:网站首页>win10 uwp 获得Slider拖动结束的值
win10 uwp 获得Slider拖动结束的值
2022-08-09 16:53:00 【林德熙】
本文讲的是如何获得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 就可以获得鼠标松开的值。
边栏推荐
- One-key login principle of local number
- 【工业数字化大讲堂 第二十期】制造业数字化能力建设分享,特邀制造业高级咨询顾问 李东老师分享
- C#介绍及基本数据类型
- 论文解读:Deep-4MCW2V:基于序列的预测指标,以鉴定大肠杆菌中的N4-甲基环胞嘧啶位点
- 学长告诉我,大厂MySQL都是通过SSH连接的
- 总结篇4:redis 核心数据存储结构及核心业务模型实现应用场景
- 进程的两种创建方式,join方法,进程间的数据隔离,队列,进程间的通信IPC机制,生产者消费者模型,守护进程,僵尸进程,孤儿进程,互斥锁
- How to choose a good SaaS knowledge base tool?
- 如何仿造一个websocket请求?
- win10 uwp 手动锁Bitlocker
猜你喜欢
学长告诉我,大厂MySQL都是通过SSH连接的
基于ABP和Magicodes实现Excel导出操作
MASA Stack 第三期社区例会
论文解读:Deep-4MCW2V:基于序列的预测指标,以鉴定大肠杆菌中的N4-甲基环胞嘧啶位点
怎样选择一个好的SaaS知识库工具?
The strongest distributed lock tool: Redisson
Problems Existing in Hardware Development of Electronic Products
[ Kitex Source Code Interpretation ] Request to retry
【Pycharm好用功能】
总结篇4:redis 核心数据存储结构及核心业务模型实现应用场景
随机推荐
ABP 6.0.0-rc.1的新特性
GoFrame缓冲输出到客户端Flush()
谭中意:你知道 “开源女王” 是谁吗?
以技术御风险,护航云原生 | 同创永益 X 博云举办产品联合发布会
本机号码一键登录原理
C#介绍及基本数据类型
Redis的那些事:一文入门Redis的基础操作
AlphaControls 控件 TsPanel TsGroupBox 块与组的结合
OpenCV 轮廓 —— 轮廓匹配
逻辑越权和水平垂直越权支付篡改,验证码绕过,接口
【工业数字化大讲堂 第二十期】制造业数字化能力建设分享,特邀制造业高级咨询顾问 李东老师分享
[ Kitex Source Code Interpretation ] Request to retry
动手学深度学习_全卷积网络 FCN
An in-depth understanding of the implementation principle of Hybrid
华为云全流程护航《流浪方舟》破竹首发,打造口碑爆款
win10 uwp 模拟网页输入
leetcode/链表中环的入口节点
.NET 6学习笔记(4)——解决VS2022中Nullable警告
微软 .NET Core 3.1 年底将结束支持,请升级到.NET 6
动态RDLC报表(三)