我想使用System.Drawing.printing的Graphics对象在打印输出中绘制一个表。我正在尝试使用DrawRectangle来绘制我的表格单元格。这需要在一行中绘制几个矩形。这应该很简单,对吧?看起来,DrawRectangle有四个参数,分别是x,y,width和height。然而,x和y是整数,而width和height是单数。我的矩形是重叠的,因为一行中的下一个单元格的x位置不能基于前一个矩形的宽度。换句话说,x位置和宽度是不同的数据类型,并且不使用相同的小数位数。如何根据上一个单元格的宽度计算下一个单元格的x位置?
发布于 2010-09-30 23:38:28
我没有看到任何包含不同数据类型的DrawRectangle重载:
http://msdn.microsoft.com/en-us/library/fxtkbx2d.aspx
不同的宽度应该无关紧要,您只需将当前矩形的宽度添加到X,并在该位置绘制下一个矩形。(如果你的矩形是不同的单位,那么你需要在你的帖子中提供更多的信息。有人可能会帮助您在单位之间进行转换。)
一些伪代码:
current = new Rectangle(0, 0, 100, 50)
while (current.x + current.width) < page_width
DrawRectangle(Pens.Black, current.x, current.y, current.width, current.height)
current.x += current.width
current.width = width_of_next_rectangle
end whilehttps://stackoverflow.com/questions/3832160
复制相似问题