我有一个WinForm应用程序,它在PictureBox中显示了一个图像,该图像具有允许用户通过单击和拖动在图像上绘制矩形的附加功能。 矩形的位置,高度和宽度保存到磁盘。
当再次查看图像时,我想自动在图像上的相同位置重绘该矩形。
然而,当我重绘它时,高度和宽度都很好但位置总是关闭。
在MouseDown事件中捕获位置,如此
private void pbSample_MouseDown(object Sender, MouseEventArgs e)
{
if (SelectMode)
{
StartLocation.X = e.X;
StartLocation.Y = e.Y;
//later on these are saved as the location of the rectangle
}
}
我正在重新绘制它
public void DrawSelectedArea(Rectangle rect)
{
Graphics g = this.pbSample.CreateGraphics();
Pen p = new Pen(Brushes.Black);
g.DrawRectangle(p, rect);
}
考虑到在MouseDown事件期间捕获的MouseEventArgs的位置,我如何计算重绘矩形的正确位置?
答案 0 :(得分:0)
您捕获的鼠标点击点可能是相对于表单而不是图片框。您需要确保正确捕获坐标或抵消它们。
您可以将屏幕截图作为示例吗?