C# 获取当前屏幕DPI

原文:C# 获取当前屏幕DPI

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的!

注:屏幕的物理分辨率/真实分辨率/高宽缩放比例,可参考C# API 获取系统DPI缩放倍数跟分辨率大小

原文地址:https://www.cnblogs.com/lonelyxmas/p/9091138.html

时间: 2024-10-14 04:26:15

C# 获取当前屏幕DPI的相关文章

获取当前屏幕DPI

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 Management

C# 获取当前屏幕的宽高和位置

上一篇博客<C# 获取当前屏幕DPI>,介绍了如何获取当前屏幕的DPI设置 本章主要介绍如何获取当前窗口所在屏幕的信息 当前屏幕信息 如果当前是单屏幕,可以直接获取主屏幕 var primaryScreen = Screen.PrimaryScreen; 如果当前是多屏,建议通过窗口句柄获取Screen信息 var window = Window.GetWindow(ExportButton);//获取当前主窗口 var intPtr = new WindowInteropHelper(win

动态获取手机屏幕宽高及动态设置控件宽高

1.获取手机屏幕宽高: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenWidth = dm.widthPixels; int screenHeight = dm.heightPixels; 22.根据屏幕宽度为控件设置动态设置宽高: imageView.setImageResource(R.drawable.newscar); L

android获取设备屏幕大小的方法

// 通过WindowManager获取 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); System.out.println("heigth : " + dm.heightPixels); System.out.println("width : " + dm.widthPixels); // 通过Resources获取

winfrom 获取当前屏幕尺寸

获取当前工作区宽度和高度(工作区不包含状态栏) int ScreenWidth = Screen.PrimaryScreen.WorkingArea.Width; int ScreenHeight = Screen.PrimaryScreen.WorkingArea.Height; winfrom 获取当前屏幕尺寸,布布扣,bubuko.com

WINFORM中几句程序获取整个屏幕的图片及当前窗口的图片快照

/// <summary> /// 获取整个屏幕的图片        /// </summary>        /// <returns></returns>        public static Image GetScreenImage()        {            Image image = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bound

获取各种屏幕宽度、高度

JS,Jquery获取各种屏幕的宽度和高度 Javascript: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.body.offsetWidth (包括边线的宽)网页可见区域高: document.body.offsetHeight (包括边线的高)网页正文全文宽: document.body.scrollWidth网页正文全文高: document.body.scr

获取Android屏幕尺寸、控件尺寸、状态栏/通知栏高度、导航栏高度

1.获取Android屏幕尺寸 我们可以通过getSize()方法获得屏幕的尺寸 Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int width = size.x; int height = size.y; 1 2 3 4 5 如果不是在Activity里面,则无法使用getWindowManager(),此时可以使用WINDO

C#获取Windows屏幕尺寸

在C#中,可以使用System.Windows.SystemParameters获取有关屏幕真实状态的基本信息. 1. 获取屏幕像素: 使用  SystemParameters.FullPrimaryScreenHeight             SystemParameters.FullPrimaryScreenWidth 2. 获取工作区(不包括任务栏)像素: 使用  SystemParameters.WorkArea.Height  SystemParameters.WorkArea.W