Как узнать реальный размер диагонали дисплея (жк), т. Е. Если это 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"монитор в качестве базы для расчета размеров... Спасибо
1 ответ
Решение
Я нашел похожий вопрос на http://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();
}
}
Я проверил его на своей локальной машине, которая имеет 2 монитора, и он дал почти точный результат. (12,70 для моих 13 дюймов и 23,98 для 24 дюймов экрана.)