Подтвердить что ты не робот

Нарисуйте прямоугольник заливки с низкой непрозрачностью

У меня есть PictureBox с изображением в приложении Windows Form на языке С#. Мне нужно нарисовать FillRectangle в некотором расположении picturebox.but, но мне также нужно увидеть картинку с изображением box.how можно рисовать этот прямоугольник с низкой непрозрачностью, чтобы увидеть изображение изображения?

4b9b3361

Ответ 1

Вы имеете в виду:

using (Graphics g = Graphics.FromImage(pb.Image))
{
    using(Brush brush = new SolidBrush(your_color))
    {
        g.FillRectangle(brush , x, y, width, height);
    }
}

или вы можете использовать

Brush brush = new SolidBrush(Color.FromArgb(alpha, red, green, blue))

где альфа идет от 0 до 255, поэтому значение 128 для вашей альфы даст вам 50% opactity.

Ответ 2

Вам нужно создать объект Graphics на основе вашего изображения PictureBox и нарисовать то, что вы хотите на нем:

Graphics g = Graphics.FromImage(pictureBox1.Image);
g.FillRectangle(Brushes.Red, new Rectangle(10, 10, 200, 200))
pictureBox1.Refresh()

Или, как было предложено @Davide Parias, вы можете использовать обработчик событий Paint:

private void pictureBox_Paint(object sender, PaintEventArgs e)
{
    e.Graphics.FillRectangle(Brushes.Red, new Rectangle(10, 10, 200, 200));
}