C# を使用して WPF でマップ コントロールを開発しています。たとえば、2,000mx 1,000m のマップ領域が割り当てられた 400 x 200 などのキャンバス コントロールを使用しています。
マップの縮尺は 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 コントロールのサイズをインチ単位で正確に測定するにはどうすればよいですか?