Как выделить область в PictureBox.Image с помощью мыши в C#

Я просто хотел поместить выделение в свой файл изображения picturebox.image, но это стало еще хуже, чем какая-то маленькая раздражающая ситуация. Я думал о другом окне изображения поверх основного окна изображения, но мне это показалось такой ленивой работой. Мне нужно знать, есть ли способ создать область выбора (которая будет наполовину прозрачной синей областью) на изображении picturebox.image, которое я буду рисовать с помощью мыши, и это не должно изменять изображение, над которым я работаю.

проба:

    // Start Rectangle
    //
    private void pictureBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
        // Determine the initial rectangle coordinates...
        RectStartPoint = e.Location;
        Invalidate();
    }

    // Draw Rectangle
    //
    private void pictureBox1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
    {
        if (e.Button != MouseButtons.Left)
            return;
        Point tempEndPoint = e.Location;
        Rect =
            new Rectangle(
                Math.Min(RectStartPoint.X, tempEndPoint.X),
                Math.Min(RectStartPoint.Y, tempEndPoint.Y),
                Math.Abs(RectStartPoint.X - tempEndPoint.X),
                Math.Abs(RectStartPoint.Y - tempEndPoint.Y));
        Invalidate(Rect);
    }

    // Draw Area
    //
    private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
        // Draw the rectangle...
        if (pictureBox1.Image != null)
        {
            Brush brush = new SolidBrush(Color.FromArgb(128, 72, 145, 220));
            e.Graphics.FillRectangle(brush, Rect);
        }
    }
10
задан Erno 12 February 2018 в 07:21
поделиться