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除掉,数据正常了。

 

posted @   wuty007  阅读(228)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示