PictureBox绘图坐标相对于表格

时间:2010-07-23 10:41:04

标签: .net image gdi+ drawing picturebox

我在表单上有一个PictureBox。

在表单的Load事件中,我按如下方式创建图形:

imageGraphics = Graphics.FromImage(PictureBox1.Image)

然后,在PictureBox_MouseMove事件中我绘制椭圆:

imageGraphics.FillEllipse(New SolidBrush(brushColor), e.X, e.Y, brushWidth, brushWidth)

无论我尝试什么,它总是使用不正确的坐标。我尝试了e.Location.PointToClient(),PointToScreen()和Cursor.Position。远远超出预期(我需要精确绘制光标所在的位置)。

每当调整窗体大小时(和PictureBox一样,因为它的Anchor属性设置为展开),绘制到光标的相对位置会发生变化。

我有什么遗漏吗?

2 个答案:

答案 0 :(得分:1)

这听起来像是PictureBox上的sizeMode错误。尝试使PictureBox图像的大小与PictureBox的大小相同。

答案 1 :(得分:1)

虽然这是1。5年,但获取相对于PictureBox的坐标的正确调用是:

   Dim p1 as point=PictureBox1.PointToClient(Windows.Forms.Cursor.Position)
   imageGraphics.FillEllipse(New SolidBrush(brushColor), p1.X, p1.Y, brushWidth, brushWidth)

我想,这对将来的某个人有用。