2011-09-28 41 views
18

Tôi có một PictureBox với một hình ảnh trong một ứng dụng Windows Form trong ngôn ngữ C#. Tôi muốn vẽ một hình chữ nhật ở một số vị trí của picturebox.but tôi cũng cần phải xem hình ảnh của hộp hình ảnh. tôi có thể vẽ hình chữ nhật này với độ mờ đục thấp để xem hình ảnh của picturebox?Vẽ một hình chữ nhật điền với độ mờ thấp

+0

xem câu hỏi và câu trả lời tại đây: http://stackoverflow.com/questions/1113437/drawing-colors-in-a-picturebox lấy cảm hứng từ những câu trả lời đó về cơ bản bạn có thể sao chép dán từ đó :) –

Trả lời

52

Bạn có nghĩa là:

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

hoặc bạn có thể sử dụng

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

nơi alpha đi từ 0 đến 255, do đó, một giá trị của 128 cho alpha của bạn sẽ cung cấp cho bạn 50% opactity.

+0

Giống như loại đồ họa, loại bàn chải thực hiện giao diện IDisposable. Có lẽ ví dụ cũng nên chứng minh điều đó. – tafa

+0

Bạn cần phải xem xét alpha của màu sắc cho không điền rắn (độ mờ thấp). – hungryMind

2

Bạn cần phải tạo một đối tượng Graphics dựa trên hình ảnh của bạn PictureBox và vẽ những gì bạn muốn trên nó:

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

Hoặc theo đề nghị của @Davide Parias bạn có thể sử dụng sơn xử lý sự kiện:

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

trong trình xử lý sự kiện: private void pictureBox_Paint (đối tượng người gửi, PaintEventArgs e) ... –

Các vấn đề liên quan