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

编程开发
2419
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)
highlight代码高亮插件怎么实现代码显示行号效果?
.NET5 webApi项目接收HttpPost文本流数据
Microsoft SQL Server 2008 R2  不同版本永久安装激活序列号
在线工具_生成带Logo的二维码图
vs编译时报错 不安全代码只会在使用 /unsafe 编译的情况下出现
 C# 实现 Rsa字符串非对称加密简单例子
解决html2canvas在 iOS15系统浏览器中截图后自动刷新页面问题
使用AJAX请求报错 此请求已被阻止
C# 操作DOS添加端口防火墙名单
C# 中使用const 常量可能会出现的版本更新问题!
微信公众平台C#开发系列(十三):模板消息-获得模板ID
CefSharp 运行缓存数据量过大占完系统磁盘空间
暂无相关内容...
基于WPF实现系统桌面录制gif+批量添加水印工具源码
基于Wpf+MVVM实现的完整截图软件的框选区域效果源码
visual studio 2019在线安装包和激活码密钥key
 远程控制软件Radmin3.4 中文完整版(控制端和被控端)
C#基于ffmpeg.exe实现视频添加字幕转GIF表情包的源码
免责声明 部分转载分享内容若侵犯您的权益,还请 邮件联系 侵删