2009-02-23 36 views
6

Có thể vẽ một đường thẳng bằng màu đã tốt nghiệp không?Vẽ một đường có màu gradient

Tôi muốn có thể vẽ đường thẳng hoặc đường cong (nếu có thể), tại một đầu của đường là Màu xanh và đầu kia là Màu đỏ.

Hơn nữa Có thể cần phải có nhiều hơn một dòng trên mỗi dòng, ví dụ: màu chuyển từ Xanh lam -> Xanh lục -> Đỏ. Tôi nghĩ rằng điều này có thể chỉ bao gồm nhiều đường vẽ được vẽ với nhau.

Trả lời

9
protected override void OnPaint(PaintEventArgs e) 
{ 
    base.OnPaint(e); 

    Graphics graphicsObject = e.Graphics; 

    using (Brush aGradientBrush = new LinearGradientBrush(new Point(0, 0), new Point(50, 0), Color.Blue, Color.Red)) 
    { 
     using (Pen aGradientPen = new Pen(aGradientBrush)) 
     { 
      graphicsObject.DrawLine(aGradientPen, new Point(0, 10), new Point(100, 10)); 
     } 
    } 
} 
+0

Bạn nên gọi vứt bỏ ... –

+2

không, anh không cần phải trong trường hợp này. Phương thức Dispose() sẽ được gọi tự động sau phương thức OnPaint. –

+0

Anh ấy nên, trên Bút và Bút vẽ. Tốt hơn, giữ chúng sống động như các thành viên và không tạo ra những cái mới trên mỗi loại sơn. – configurator

3

bạn sẽ cần phải sử dụng System.Drawing.Drawing2D.LinearGradientBrush thay vì System.Drawing.SolidBrush

dụ:

e.Graphics.DrawLine(new Pen(new System.Drawing.Drawing2D.LinearGradientBrush(... 
Các vấn đề liên quan