博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 获取当前屏幕DPI
阅读量:5303 次
发布时间:2019-06-14

本文共 896 字,大约阅读时间需要 2 分钟。

原文:

1.通过Graphics类获取

Graphics currentGraphics = Graphics.FromHwnd(new WindowInteropHelper(mainWindow).Handle);double dpixRatio = currentGraphics.DpiX/96;

比如当前屏幕设置DPI设置1.5倍,可以通过如上通过后台获取。

2.通过Win32-ManagementClass

using (ManagementClass mc = new ManagementClass("Win32_DesktopMonitor")){    using (ManagementObjectCollection moc = mc.GetInstances())    {        int PixelsPerXLogicalInch = 0; // dpi for x        int PixelsPerYLogicalInch = 0; // dpi for y        foreach (ManagementObject each in moc)        {            PixelsPerXLogicalInch = int.Parse((each.Properties["PixelsPerXLogicalInch"].Value.ToString()));            PixelsPerYLogicalInch = int.Parse((each.Properties["PixelsPerYLogicalInch"].Value.ToString()));        }    }}

 

值得一提的是,有主副屏屏幕的情况下,是获取不了副屏的DPI的!

 

注:屏幕的物理分辨率/真实分辨率/高宽缩放比例,可参考

 

posted on
2018-09-25 08:45 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/9697770.html

你可能感兴趣的文章
20130330java基础学习笔记-语句_for循环嵌套练习2
查看>>
Spring面试题
查看>>
窥视SP2010--第一章节--SP2010开发者路线图
查看>>
MVC,MVP 和 MVVM 的图示,区别
查看>>
C语言栈的实现
查看>>
代码为什么需要重构
查看>>
TC SRM 593 DIV1 250
查看>>
SRM 628 DIV2
查看>>
2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
查看>>
Python-S9-Day127-Scrapy爬虫框架2
查看>>
SecureCRT的使用方法和技巧(详细使用教程)
查看>>
右侧导航栏(动态添加数据到list)
查看>>
81、iOS本地推送与远程推送详解
查看>>
虚拟DOM
查看>>
自建数据源(RSO2)、及数据源增强
查看>>
BootStrap2学习日记2--将固定布局换成响应式布局
查看>>
关于View控件中的Context选择
查看>>
2018icpc徐州OnlineA Hard to prepare
查看>>
Spark的启动进程详解
查看>>
使用命令创建数据库和表
查看>>