我正在使用 C# 在 WPF 中开发地图控件。我正在使用一个画布控件,例如 400 x 200,它被分配了一个例如 2,000mx 1,000m 的地图区域。
地图的比例为: canvas_size_in_meters / real_size_in_meters。
我想找到canvas_size_in_meters。
canvas.ActualWidth 以 DIU(设备独立单位)为单位给出宽度。所以,400 DIU 是 400/96 = 4,17 英寸,前提是我的显示器的物理分辨率是 96 dpi。
但是,使用尺子,我发现我的显示器的物理分辨率是 87 dpi。(实际上只有少数显示器具有 96 物理 dpi)
DPI 差异 (10%) 转化为屏幕上实际地图控件宽度的 +10% 差异。
无论屏幕分辨率和 DPI 设置如何,如何准确测量 WPF 控件的大小(以英寸为单位)?