在面板上以毫米为单位对齐网格?

发布于 2024-09-06 08:28:36 字数 369 浏览 3 评论 0原文

我有一个面板。我需要用 WYSIWYG 来表示它。

现在,当在其上绘制时,可以使用毫米而不是像素进行绘制。

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

是否可以以毫米为单位定位控件(按钮、文本框),以获得面板的“真实”纸质图像?

在 VB6 中这是可能的。 .NET 是一种倒退,还是 VB6 只是使用了我们不想在 .NET 中使用的近似值?

I have a panel. I need to represent it in WYSIWYG.

Now, when drawing on it, is possible to draw using millimeters instead of pixels.

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

Is it possible to position the controls(buttons, textboxes) also in millimeters, in order to get a "real" paper image of the panel?

In VB6 this was possible. Is .NET a step backward or VB6 just use the approximation that we don't want to use in .NET?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

走走停停 2024-09-13 08:28:36

很简单,如果不对您支持的每个显示器执行特定的数学运算,我认为这是不可能的。

DPI 通常用于打印,并且对于纸张上的测量很有用。但是,无法保证显示器上的测量结果,因为您可以随时更改分辨率,但仍具有相同的 DPI(通常为 96)。除此之外,您还需要考虑显示器尺寸。

您需要了解的是特定显示器的像素密度,即 PPI。我不相信这是可以实现的,尽管如果我错了,其他人可以纠正我。

Quite simply, I don't believe this is possible, without performing specific math for each monitor you support.

DPI is commonly used for printing, and is useful for measurements on paper. However, measurements on a monitor are not guaranteed, since you can change resolutions at any time and still have the same DPI (typically 96). Beyond that you need to also consider monitor size.

What you need to know is the Pixel Density, or PPI, for your specific monitor. I don't believe this can be obtained, although others can correct me if I'm wrong.

贱贱哒 2024-09-13 08:28:36

试试这个:

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 毫米,因此使用上述公式,您可以计算控件的高度和宽度(以毫米为单位)并调整它们的位置。

Try this:

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;

There are 25.4 mm in 1 inch so using the above formulas you can calculate heights and widths of controls in mm and adjust their positions also.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文