代码之家  ›  专栏  ›  技术社区  ›  serhio

在面板上以毫米为单位捕捉网格?

  •  0
  • serhio  · 技术社区  · 15 年前

    我有一个小组。我需要用 WYSIWYG

    现在,什么时候 在它上面,可以用毫米代替像素来画图。

    graphics.PageUnit = GraphicsUnit.Millimeter
    graphics.DrawRectangle(pen,rect)
    

    有没有可能 (按钮、文本框)也以毫米为单位,以便获得面板的“真实”纸张图像?

    3 回复  |  直到 15 年前
        1
  •  1
  •   Will Eddins ianpoley    15 年前

    很简单,我不相信这是可能的,没有执行具体的数学为每个显示器你支持。

    DPI通常用于打印,对于纸张上的测量非常有用。但是,不能保证在监视器上进行测量,因为您可以随时更改分辨率,并且仍然具有相同的DPI(通常为96)。除此之外,您还需要考虑显示器的大小。

    你需要知道的是 Pixel Density ,或PPI,用于特定显示器。我不相信这可以得到,虽然别人可以纠正我,如果我错了。

        2
  •  0
  •   TheVillageIdiot    15 年前

    试试这个:

    var dpiX = Graphics.DpiX;//horizontal
    var dpiY = Graphics.DpiY;//vertical
    
    var mmX = (width_in_pixles * 25.4 ) / dpiX;
    var mmY = (height_in_pixles * 25.4) / dpiY;
    

    1英寸中有25.4毫米,因此使用上述公式,您可以以毫米为单位计算控件的高度和宽度,并调整它们的位置。

        3
  •  0
  •   serhio    15 年前
    推荐文章