我有一个小组。我需要在WYSIWYG中表示它。
现在,当绘图时,可以使用毫米而不是像素进行绘制。
graphics.PageUnit = GraphicsUnit.Millimeter
graphics.DrawRectangle(pen,rect)
是否可以定位控件(按钮,文本框)也以毫米为单位,以获得面板的“真实”纸质图像?
在VB6中,这是可能的。 .NET是向后退一步还是VB6只使用我们不想在.NET中使用的近似值?
答案 0 :(得分:1)
很简单,如果没有为您支持的每台显示器执行特定的数学运算,我认为这是不可能的。
DPI通常用于打印,可用于纸张测量。但是,无法保证在显示器上进行测量,因为您可以随时更改分辨率并且仍然具有相同的DPI(通常为96)。除此之外,您还需要考虑显示器尺寸。
您需要了解的是特定显示器的Pixel Density或PPI。我不相信这可以获得,但如果我错了,其他人可以纠正我。
答案 1 :(得分:0)
试试这个:
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毫米,所以使用上面的公式,你可以用mm计算控制的高度和宽度,并调整它们的位置。
答案 2 :(得分:0)