Как я могу получить реальный размер диагонали дисплея (lcd), т. е. если это 17 дюймов или 19 дюймов или другое?
Это полезно для меня, потому что я должен отображать объекты с правильным размером на экране; если я использую 19-дюймовый ЖК-дисплей с разрешением 1280х1024 и нормальной настройкой 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 принимает 96dpi на 17-дюймовом мониторе в качестве основы для вычисления размеров... Спасибо
1 ответ:
Я нашел аналогичный вопрос на www.c-sharpcorner.com . он предоставляет ниже код
Я протестировал его на своей локальной машине, которая имеет 2 монитора, и он возвращает почти точный результат. (12,70 для моих 13 дюймов и 23,98 для 24-дюймового экрана.)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(); } }