C# Graphics 获取桌面显示DPI 以及屏幕缩放比例方法

编程开发
2409
Graphics
GDI+
桌面DPI
桌面缩放比例

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)
vs编译时报错 不安全代码只会在使用 /unsafe 编译的情况下出现
WPF 异步线程操作界面控件
 C# 实现 Rsa字符串非对称加密简单例子
 C#实现图像以中心点任意角度旋转
Web上传文件请求报错超过了最大请求长度
C# 操作DOS添加端口防火墙名单
C# 引用NPOI组件实现泛型实体集合转换成表格Excel
.NET5 webApi项目接收HttpPost文本流数据
C# 要如何才能实现代码修改系统桌面显示的分辨率
c#通过winAPI函数InternetGetConnectedState获得本地系统的网络连接状态
PDF文件流接口弹出下载提示不是直接预览的解决办法
html5手机端禁止用户浏览器缩放页面的代码
暂无相关内容...
基于Wpf+MVVM实现的完整截图软件的框选区域效果源码
 远程控制软件Radmin3.4 中文完整版(控制端和被控端)
visual studio 2019在线安装包和激活码密钥key
C#基于ffmpeg.exe实现视频添加字幕转GIF表情包的源码
基于WPF实现系统桌面录制gif+批量添加水印工具源码
免责声明 部分转载分享内容若侵犯您的权益,还请 邮件联系 侵删