Как я могу получить реальный размер диагонали (ЖК-дисплея), то есть если это 17 дюймов или 19 дюймов или другой?

Это полезно для меня, потому что я должен отображать объекты с правильными размерами на экране; если я использую 19-дюймовый ЖК-дисплей с разрешением 1280x1024 и нормальной настройкой 96 точек на дюйм, то для отображения правильного 1-дюймового квадрата мне нужно написать такой xaml

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

где ширина и высота равны 86, потому что

86 ~= 96 (точек на дюйм) * 17 (дюймов) / 19 (дюймов)

поскольку Windows предполагает 96 точек на дюйм на 17-дюймовом мониторе в качестве основы для расчета размеров... Спасибо.


person Titianus    schedule 16.10.2012    source источник


Ответы (1)


Я нашел похожий вопрос на www.c-sharpcorner.com. Он предоставляет код ниже

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();
    }
}

Я протестировал его на своем локальном компьютере с двумя мониторами, и он дал почти точный результат. (12,70 для моего 13-дюймового экрана и 23,98 для 24-дюймового экрана.)

person Ekk    schedule 16.10.2012
comment
Спасибо, работает нормально... но, ааааа! только с сервера Vista/2008. - person Titianus; 17.10.2012