在面板上以毫米为单位对齐网格?
我有一个面板。我需要用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
很简单,如果不对您支持的每个显示器执行特定的数学运算,我认为这是不可能的。
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.
试试这个:
1 英寸等于 25.4 毫米,因此使用上述公式,您可以计算控件的高度和宽度(以毫米为单位)并调整它们的位置。
Try this:
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.
到目前为止,一个可接受的解决方案:
http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/ffb7e52d-8533-465c-bd57-17f7b704c927
Till this, an acceptable solution:
http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/ffb7e52d-8533-465c-bd57-17f7b704c927