From 847796e9c1344082a910361fdd4ef2fa91c82758 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sat, 26 Mar 2016 15:49:34 +0100 Subject: [PATCH] Account for DPI scaling between screen and client. --- src/Windows/Perspex.Win32/WindowImpl.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Windows/Perspex.Win32/WindowImpl.cs b/src/Windows/Perspex.Win32/WindowImpl.cs index c30aed9aa5..c02f90db66 100644 --- a/src/Windows/Perspex.Win32/WindowImpl.cs +++ b/src/Windows/Perspex.Win32/WindowImpl.cs @@ -238,11 +238,12 @@ namespace Perspex.Win32 { var p = new UnmanagedMethods.POINT { X = (int)point.X, Y = (int)point.Y }; UnmanagedMethods.ScreenToClient(_hwnd, ref p); - return new Point(p.X, p.Y); + return new Point(p.X, p.Y) / Scaling; } public Point PointToScreen(Point point) { + point *= Scaling; var p = new UnmanagedMethods.POINT { X = (int)point.X, Y = (int)point.Y }; UnmanagedMethods.ClientToScreen(_hwnd, ref p); return new Point(p.X, p.Y);