如何将screenLeft和screenTop的像素值转换为百分比?
窗口坐标(screenLeft/screenTop)像素转百分比的公式及VB.NET实现
嘿,这个转换逻辑其实和你已经搞定的窗口宽高像素转百分比思路完全一致哦!
核心转换公式
- screenLeft转X轴百分比:
(窗口左上角X像素坐标 / 主屏幕宽度) * 100 - screenTop转Y轴百分比:
(窗口左上角Y像素坐标 / 主屏幕高度) * 100
简单来说,就是用窗口左上角的像素坐标,分别除以主屏幕的宽度(对应X轴基准)和高度(对应Y轴基准),再乘以100就能得到百分比数值。
VB.NET代码实现示例
结合你已有的代码风格,这里给出完整的坐标转换代码:
' 替换为你实际获取到的window.screenLeft和screenTop像素值 Dim leftPix As Integer = ' 你的窗口X像素坐标 Dim topPix As Integer = ' 你的窗口Y像素坐标 ' 和宽高转换逻辑一致的百分比计算 Dim leftInPercent As Integer = CInt((leftPix / PrimaryScreen.Bounds.Width) * 100) Dim topInPercent As Integer = CInt((topPix / PrimaryScreen.Bounds.Height) * 100)
小提示
和你之前的宽高转换一样,这里用PrimaryScreen.Bounds获取主屏幕尺寸,保证坐标转换的基准和宽高转换完全统一。如果涉及多屏幕场景,只需要把基准换成对应屏幕的尺寸即可,但按你当前的代码逻辑,用主屏幕作为基准就完全没问题啦。
内容的提问来源于stack exchange,提问作者Goutham Indiran
相关产品推荐
相关产品推荐

