Я разрабатываю элемент управления картой в WPF с помощью C #. Я использую элемент управления холстом, например. 400 x 200, которому назначена область карты, например 2000 м х 1000 м.
Масштаб карты будет: размер_холста_в_метрах / реальный_размер_в_метрах.
Я хочу найти файл canvas_size_in_meters.
Canvas.ActualWidth дает ширину в DIU (независимые от устройства единицы). Итак, 400 DIU составляют 400/96 = 4,17 дюйма, ПРЕДУСМОТРЕНО, что физическое разрешение моего монитора составляет 96 точек на дюйм.
Однако с помощью линейки я обнаружил, что физическое разрешение моего монитора составляет 87 точек на дюйм. (Есть только несколько мониторов, которые ДЕЙСТВИТЕЛЬНО имеют 96 точек на дюйм)
Эта разница в DPI (10%) означает + 10% разницу в фактической ширине элемента управления картой на экране.
Как точно измерить размер элемента управления WPF в дюймах независимо от разрешения экрана и настроек DPI?