У меня есть приложение 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);
}
Учитывая местоположение из MouseEventArgs, захваченное во время события MouseDown, как я могу вычислить правильное местоположение, чтобы перерисовать мой прямоугольник?