WPF Thumb 滑块控件踩坑
最近在做一个仿 手机选择时间的控件,如下图,选用了 Thumb 滑块控件做上下滑动的功能。订阅了 Thumb_OnDragStarted、Thumb_DragDelta和Thumb_DragCompleted的事件,做一些业务逻辑
发现问题:
在我们普通pc电脑上,滑块的Thumb_DragDelta 和 Thumb_DragCompleted 的 e.VerticalChange,在结束事件的时候是一致的。
但是放到大屏上就是不正常的,计算了一下刚好是5倍的关系
排查了一番,发现大屏上的对应的dpi是调成了500%的,于是我把个人的pc电脑的dpi调整了175%,在进一步调试。
发现问题所在:Thumb_DragDelta 的 e.VerticalChange 是获取的wpf的像素,而Thumb_DragCompleted 的 e.VerticalChange 则是获取屏幕上的,也即是乘上了dpi的
查阅了源码,也说明了DragDelta回调的参数是wpf像素
不知道该问题是不是wpf的bug,但是为了解决我目前的问题,我在Thumb_DragCompleted 做数据处理,把dpi除掉,数据正常了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?