C# Graphics 获取桌面显示DPI 以及屏幕缩放比例方法
GraphicsGDI+桌面DPI桌面缩放比例
编程开发
2316
0 积分
Graphics 实现获取Windows 桌面DPI 桌面缩放比例的代码
///获取当前系统的dpi数值
private void SystemDpi(out int x, out int y)
{
using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
{
x = (int)g.DpiX;
y = (int)g.DpiY;
g.Dispose();
}
}
///根据当前系统dpi数值匹配 当前系统的桌面缩放比例
private double Scaling(int DpiIndex)//x或y都一样
{
switch (DpiIndex)
{
case 96: return 1;
case 120: return 1.25;
case 144: return 1.5;
case 168: return 1.75;
case 192: return 2;
}
return 1;
}
调用例子
//x_dpi:横向dpi y_dpi:纵向dpi
int x_dpi = 0, y_dpi = 0;
//获取屏幕dpi x_dpi或y_dpi取其一即可 (两者正常情况下 应该是一致的 不一致的话 屏幕显示应该变形了)
SystemDpi(out x_dpi,out y_dpi);
//再通过dpi数值 获取屏幕当前的缩放比例
double ScreenScale = Scaling(x_dpi);//或者 double ScreenScale = Scaling(y_dpi)