各位专家,大家好!
我有一个wpf的窗体,大小为: Width="130" Height="130";为了使鼠标在窗体中心,并且窗体能跟随鼠标移动,所以我设置如下属性:
this.Top = p.Y - 65;
this.Left = p.X - 65;
p为我通过API函数获取当前屏幕的鼠标位置,API函数:
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool GetCursorPos(out POINT pt);

以上方法在DPI为默认的96DPI下是可以正常运行和显示的,如上图,但是当DPI改变之后,就变成如下图片所示情况了:
个人觉得通过api获取当前鼠标的位置应该是没有问题,问题出在65这个固定值上,所以是否有方法获取当前DPI并换算当前的65这个值。