Desenhar retângulo dentro da caixa de imagem SizeMode Zoom

Eu tenho uma caixa de imagem em um projeto WindowsForms com seu SizeMode para "Zoom".

Eu quero desenhar um retângulo dentro da imagem e obter suas coordenadas em relação à imagem e não à caixa de imagem.

O problema é que as coordenadas do retângulo não correspondem ao mesmo retângulo selecionado no Windows Paint Application.

Aqui está o código usado:

Comece a pintar:

/// <summary>
/// Starts drawing.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
    backupImage = pictureBox1.Image;
    _once = true;
    RectStartPoint = e.Location;
    pictureBox1.Invalidate();
}

Ao mover o mouse:

/// <summary>
/// While moving mouse event, paint rectangle
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
    if (_once) //Only draw rectangle while drawing mode
    {
        Point tempEndPoint = e.Location;
        Rect.Location = new Point(Math.Min(RectStartPoint.X, tempEndPoint.X),
            Math.Min(RectStartPoint.Y, tempEndPoint.Y));

        Rect = new Rectangle(
            Math.Min(tempEndPoint.X, Rect.Left),
            Math.Min(tempEndPoint.Y, Rect.Top),
            Math.Min(e.X - RectStartPoint.X, pictureBox1.ClientRectangle.Width - RectStartPoint.X),
            Math.Min(e.Y - RectStartPoint.Y, pictureBox1.ClientRectangle.Height - RectStartPoint.Y));

        pictureBox1.Refresh();
        pictureBox1.CreateGraphics().DrawRectangle(cropPen, Rect);
    }
}

Quando 2 cliques, retângulo de pintura finlandesa:

/// <summary>
/// When mouse click is released, write in texbox the rectangle's coordinates.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
    if (_once)
    {
        if (e.Button == System.Windows.Forms.MouseButtons.Left)
        {
            Point tempEndPoint = e.Location;

            _once = false;
            string sAux = string.Format("Left: {0}; Top: {1}; Width: {2}; Height: {3} \r\n", Math.Min(tempEndPoint.X, Rect.Left), Math.Min(tempEndPoint.Y, Rect.Top),
                    Math.Min(e.X - RectStartPoint.X, pictureBox1.ClientRectangle.Width - RectStartPoint.X), Math.Min(e.Y - RectStartPoint.Y, pictureBox1.ClientRectangle.Height - RectStartPoint.Y));

            textBox1.Text += sAux;
        }
    }
}

Os resultados são:

Imagem do Windows

Paint Image

Como você pode ver nas duas imagens, esquerda, superior, largura e altura não coincidem.

Você pode me dizer como obter o mesmo resultado?

Exemplo2

questionAnswers(1)

yourAnswerToTheQuestion