У меня есть PictureBox с изображением в приложении Windows Form на языке С#. Мне нужно нарисовать FillRectangle в некотором расположении picturebox.but, но мне также нужно увидеть картинку с изображением box.how можно рисовать этот прямоугольник с низкой непрозрачностью, чтобы увидеть изображение изображения?
Нарисуйте прямоугольник заливки с низкой непрозрачностью
Ответ 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));
}