C# 如何获取屏幕分辨率缩放比例
获取分辨率缩放比例:
public const int HORZRES = 8; public const int VERTRES = 10; public const int LOGPIXELSX = 88; public const int LOGPIXELSY = 90; public const int DESKTOPVERTRES = 117; public const int DESKTOPHORZRES = 118; [DllImport("user32.dll")] public static extern IntPtr GetDC(IntPtr ptr); [DllImport("gdi32.dll")] public static extern int GetDeviceCaps( IntPtr hdc, // handle to DC int nIndex // index of capability ); [DllImport("user32.dll", EntryPoint = "ReleaseDC")] public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDc); [DllImport("user32.dll")] public static extern IntPtr GetDesktopWindow();
public static float GetSreenScale() { var hdc = Win32.GetDC(Win32.GetDesktopWindow()); int nWidth = Win32.GetDeviceCaps(hdc, Win32.DESKTOPHORZRES); Win32.ReleaseDC(IntPtr.Zero, hdc); float f_Scale = (float)nWidth / (float)Screen.PrimaryScreen.Bounds.Width; return 1 / f_Scale; }