2011-03-22 176 views

回答

4

看看這個great page。文章中的代碼是用C#編寫的。下面是代碼you'e興趣和更新的矩形填充的vb.net端口:(基於製品的三角形填充樣品)

Dim pgb As New PathGradientBrush(New Point() { _ 
     New Point(0, 0), _ 
     New Point(0, Me.ClientRectangle.Height), _ 
     New Point(Me.ClientRectangle.Width, Me.ClientRectangle.Height), _ 
     New Point(Me.ClientRectangle.Width, 0)}) 
pgb.SurroundColors = New Color() {Color.Red} 
pgb.CenterColor = Color.Gray 
e.Graphics.FillRectangle(pgb, Me.ClientRectangle) 
pgb.Dispose() 

下面是另一個可能的解決方案:

Dim pth As New GraphicsPath() 
pth.AddEllipse(Me.ClientRectangle) 
Dim pgb As New PathGradientBrush(pth) 
pgb.SurroundColors = New Color() {Color.Red} 
pgb.CenterColor = Color.Gray 
e.Graphics.FillRectangle(pgb, Me.ClientRectangle) 

請注意,最後一段代碼將繪製一個矩形內的圓。如果你想讓圓形漸變填充整個矩形,你必須計算一個更大的橢圓形路徑和更大的矩形。

+0

這是一些很酷的東西,謝謝!最後一段特別有用。 – 2011-03-22 15:03:35

+1

一些有用的竅門:1.不是將橢圓放大,而是將矩形放大,保持橢圓大小相同,並在其後面繪製橢圓外部顏色的矩形。 2.如果不是白色,當內部顏色是外部顏色的陰影時,內部顏色往往看起來更好。 – 2011-03-23 21:15:31

+0

謝謝橡樹。這是很好的信息。漂亮的平面設計提示呢! – 2011-03-23 22:55:49