C# 获取当前屏幕DPI
1.通过Graphics类获取
Graphics currentGraphics = Graphics.FromHwnd(new WindowInteropHelper(mainWindow).Handle);
double dpixRatio = currentGraphics.DpiX/;
比如当前屏幕设置DPI设置1.5倍,可以通过如上通过后台获取。

2.通过Win32-ManagementClass
using (ManagementClass mc = new ManagementClass("Win32_DesktopMonitor"))
{
    using (ManagementObjectCollection moc = mc.GetInstances())
    {
        int PixelsPerXLogicalInch = ; // dpi for x
        int PixelsPerYLogicalInch = ; // 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的!
注:屏幕的物理分辨率/真实分辨率/高宽缩放比例,可参考C# API 获取系统DPI缩放倍数跟分辨率大小
C# 获取当前屏幕DPI的更多相关文章
- C# 获取当前屏幕的宽高和位置
		上一篇博客<C# 获取当前屏幕DPI>,介绍了如何获取当前屏幕的DPI设置 本章主要介绍如何获取当前窗口所在屏幕的信息 当前屏幕信息 如果当前是单屏幕,可以直接获取主屏幕 var prim ... 
- android屏幕适配的全攻略3-动态获取手机屏幕宽高及动态设置控件宽高
		1.获取手机屏幕宽高: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetr ... 
- android获取设备屏幕大小的方法
		// 通过WindowManager获取 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay( ... 
- Android 修改toast的默认位置和获取当前屏幕的高度和宽度
		Toast toast; toast=Toast.makeText(this, "toast", Toast.LENGTH_LONG); toast.setGravity(grav ... 
- WINFORM中几句程序获取整个屏幕的图片及当前窗口的图片快照
		/// <summary> /// 获取整个屏幕的图片 /// </summary> /// <returns></returns ... 
- Android编程心得-在任意类中获取当前屏幕宽高
		进行Android编程时,很多时候都需要获取当前屏幕的宽度与高度,但是当我们需要在别的类中调用屏幕宽高时,直接用原来的方法是不行的,下面我来介绍如何在任意类中调用宽度高度的两种方法. public v ... 
- ios中获取当前屏幕尺寸的方法
		//获取当前屏幕尺寸 CGRect screenFrame = [UIScreen mainScreen].bounds; int screenWidth = screenFrame.size.wid ... 
- Python + Appium   获取当前屏幕的截图方法的封装
		使用方法:get_screenshot_as_file(filename),来自于selenium\webdriver\remote\webdiver.py def take_screenShot(s ... 
- 获取系统屏幕尺寸参数的类WxHxD
		获取系统屏幕尺寸参数的类WxHxD 源码: // // WxHxD.h // PM2.5 // // Created by YouXianMing on 14/10/29. // Copyright ... 
随机推荐
- CentOS7为firewalld添加开放端口
			运行.停止.禁用firewalld 启动:# systemctl start firewalld 查看状态:# systemctl status firewalld 或者 firewall-cmd ... 
- SpringBoot(五):@ConfigurationProperties配置参数绑定
			在springmvc或其他ssh框架中如果我们要实现一个配置参数的加载,需要使用代码实现读取properties文件等操作,或者需要使用其他属性@value(name="username&q ... 
- [转]linux如何修改文件或目录的权限(chmod)
			linux如何修改文件或目录的权限(chmod) chmod命令是linux上用于改变权限的命令,-R 是递归遍历子目录,因为你要操作的文件使用的*通配符.777,第一个7代表文件所属者的权限,第二个 ... 
- javaIO流实现文件拷贝
			package com.java.demo; import java.io.*; public class CopyDemo { public static void main(String[] ar ... 
- java设计模式之单例设计模式和多例设计模式
			单例设计模式:构造方法私有化,在类的内部定义static属性和方法,利用static方法来取得本类的实例化对象:无论外部产生多少个实例化对象,本质上只有一个实例化对象 饿汉式单例设计 class Si ... 
- 微信的自动回复&接入聊天机器人
			今天偶尔发现了一个有趣的python库--itchat,可以实现微信的自动回复.防撤回,结合图灵机器人还能实现聊天机器人的作用 简单介绍一下配置与工具 win7旗舰版 pycharm python ... 
- [HNOI 2002]跳蚤
			Description Z城市居住着很多只跳蚤.在Z城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以看作是无限长.节目主持人会给该跳蚤发一张卡片.卡片上写有N+1个 ... 
- [SDOI 2009]Elaxia的路线
			Description 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间.Elaxia和w**每天都要奔波于宿舍和实验室之间, ... 
- [HNOI2005]狡猾的商人
			题目描述 输入输出格式 输入格式: 从文件input.txt中读入数据,文件第一行为一个正整数w,其中w < 100,表示有w组数据,即w个账本,需要你判断.每组数据的第一行为两个正整数n和m, ... 
- hdu 4283 区间dp
			You Are the One Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ... 
