private static SizeF CalculateScalingFactor() { const int LOGPIXELSX = 88; const int LOGPIXELSY = 90; IntPtr primaryMonitorDC = DllImports.GetDC(IntPtr.Zero); try { int deviceDpiX = DllImports.GetDeviceCaps(primaryMonitorDC, LOGPIXELSX); int deviceDpiY = DllImports.GetDeviceCaps(primaryMonitorDC, LOGPIXELSY); double scalingFactorX = deviceDpiX / LogicalDpi; double scalingFactorY = deviceDpiY / LogicalDpi; return(new SizeF((float)scalingFactorX, (float)scalingFactorY)); } finally { DllImports.ReleaseDC(IntPtr.Zero, primaryMonitorDC); } }