Wpf 如何获得(lcd)显示器对角线的实际尺寸,即如果是17英寸或19英寸或其他尺寸?

Wpf 如何获得(lcd)显示器对角线的实际尺寸,即如果是17英寸或19英寸或其他尺寸?,wpf,dpi,lcd,diagonal,Wpf,Dpi,Lcd,Diagonal,这对我很有用,因为我必须在屏幕上以正确的尺寸映射对象;如果我使用的是分辨率为1280x1024的19英寸lcd和正常的96dpi设置,那么为了映射正确的1英寸正方形,我必须像这样编写xaml <Rectangle Name="one_inch_side_on_19_inch_diag_display" Height="86" Width="86" Fill="Blue"/> 其中宽度和高度设置为86,因为 86~=96(每英寸点数)*17(英寸)/19(英寸) 由于window

这对我很有用,因为我必须在屏幕上以正确的尺寸映射对象;如果我使用的是分辨率为1280x1024的19英寸lcd和正常的96dpi设置,那么为了映射正确的1英寸正方形,我必须像这样编写xaml

<Rectangle Name="one_inch_side_on_19_inch_diag_display" Height="86" Width="86" Fill="Blue"/>

其中宽度和高度设置为86,因为

86~=96(每英寸点数)*17(英寸)/19(英寸)

由于windows假定17英寸监视器上的96dpi作为计算尺寸的基础。。。 谢谢

我在上找到了。它提供了以下代码

using System;
using System.Management;

class Test
{
    static void Main()
    {
       var searcher = new ManagementObjectSearcher("\\root\\wmi","SELECT * FROM WmiMonitorBasicDisplayParams");

       foreach(ManagementObject mo in searcher.Get())
       {
           double width = (byte)mo["MaxHorizontalImageSize"] / 2.54; 
           double height = (byte)mo["MaxVerticalImageSize"] / 2.54; 
           double diagonal = Math.Sqrt(width * width + height * height);
           Console.WriteLine("Width {0:F2}, Height {1:F2} and Diagonal {2:F2} inches", width, height, diagonal);            
       }

       Console.ReadKey();
    }
}

我在我的本地机器上测试了它,它有两个监视器,返回的结果几乎准确。(我的13英寸屏幕为12.70,24英寸屏幕为23.98。)

谢谢,它工作正常……但是,啊!仅限Vista/2008服务器。