C# WPF resolution independancy?

后端 未结 3 906
遥遥无期
遥遥无期 2020-12-16 16:59

I am developing a map control in WPF with C#. I am using a canvas control e.g. 400 x 200 which is assigned a map area of e.g. 2,000m x 1,000m.

The scale of the map w

3条回答
  •  太阳男子
    2020-12-16 17:47

    There is way to compute current pixel size in mm or inches. As mentioned in the earlier posts, it is not a fixed value and would vary depending on the current resolution and monitor size.

    First get the current resolution. Assume it is 1280x1024 Now get the monitor width in mm using GetDeviceCaps function. Its a standard windows library function.

    int widthmm = GetDeviceCaps(deviceContext, HORZSIZE); My monitor width is 362mm

    So pixel size = 362/1280 = 0.282 mm

    The accuracy of this method depends on the assumption that the display area covers the width of the monitor exactly.

    So to answer the original question, the canvas size of 400 x 200 pixels would be (400 * 0.282/1000) x (200 * 0.282/1000) in meters when shown on my monitor.

提交回复
热议问题