1. Get the X-axis
/// <summary>
/// 获取显示器分辨率放大倍数
/// </summary>
/// <returns>宽度倍数</returns>
public static float GetHostDisplayResolutionScaleX()
{
IntPtr dC = GetDC(IntPtr.Zero);
GetDeviceCaps(dC, 0x76);
GetDeviceCaps(dC, 8);
float num = ((float)GetDeviceCaps(dC, 0x76)) / ((float)GetDeviceCaps(dC, 8));
ReleaseDC(IntPtr.Zero, dC);
return num;
}
2. Get the Y axis
/// <summary>
/// 获取显示器分辨率放大倍数
/// </summary>
/// <returns>高度倍数</returns>
public static float GetHostDisplayResolutionScaleY()
{
IntPtr dC = GetDC(IntPtr.Zero);
float num = ((float)GetDeviceCaps(dC, 0x75)) / ((float)GetDeviceCaps(dC, 10));
ReleaseDC(IntPtr.Zero, dC);
return num;
}
3. Call the system dll library
[DllImport("User32.dll")]
public static extern IntPtr GetDC(IntPtr A_0);
[DllImport("gdi32.dll")]
public static extern int GetDeviceCaps(IntPtr A_0, int A_1);
[DllImport("User32.dll")]
public static extern IntPtr ReleaseDC(IntPtr A_0, IntPtr A_1);