C# PointToScreen方法返回相同监视器上的不同值

C# PointToScreen方法返回相同监视器上的不同值,c#,wpf,C#,Wpf,在一个监视器上,我执行此操作并获得以下结果: initial_point = (double)Studio.PointToScreen(new Point(0d, 0d)).X; // returns 107 final_point = (double)(Btn_Import.PointToScreen(new Point(0d, 0d)).X); //returns 406 在另一个大小和分辨率完全相同的监视器上,我运行以下代码,但得到不同的值: initial_point = (doubl

在一个监视器上,我执行此操作并获得以下结果:

initial_point = (double)Studio.PointToScreen(new Point(0d, 0d)).X; // returns 107
final_point = (double)(Btn_Import.PointToScreen(new Point(0d, 0d)).X); //returns 406
在另一个大小和分辨率完全相同的监视器上,我运行以下代码,但得到不同的值:

initial_point = (double)Studio.PointToScreen(new Point(0d, 0d)).X; // returns 133
final_point = (double)(Btn_Import.PointToScreen(new Point(0d, 0d)).X); // returns 507

所以我在两个相同的监视器上得到了不同的初始点和最终点,这导致了一些gui控件的错误转换距离。为什么会出现这种情况?

监视器在系统中具有相同的分辨率或相同的内置分辨率?差异正好为125%。那个。