一個LinearGradientBrush描繪的區域與線性漸變,換言之,沿着由起點和終點限定的線的顏色混合。畫筆的第一種顏色在起點處使用,並且顏色沿着線條平滑過渡,從而變成終點處的第二種顏色。因此,通過改變端點,您可以調整漸變的方向和發生顏色轉變的距離,甚至在距離比您要填充的區域更短時重複該距離。
您已經在您的問題中編寫了代碼,爲什麼不嘗試幾個實驗?我假設你的表格上有一個Panel
,名字爲panel1
,其大小至少爲150 x 150個單位。爲了方便起見,我們將您的代碼放入一個私有方法中,該方法接受漸變的起點和終點。爲了說明的目的,我們還將添加一些代碼來繪製一條黃色線條,其起點和終點與漸變的相同點。
private void DrawGradient(Point startPoint, Point endPoint)
{
LinearGradientBrush lgb =
new LinearGradientBrush(startPoint, endPoint, Color.Red, Color.DarkBlue);
Graphics g = panel1.CreateGraphics();
g.FillRectangle(lgb, 0, 0, 80, 80);
g.DrawLine(new Pen(Color.Yellow, 1.5f), startPoint, endPoint);
}
現在我們可以方便地從某個地方調用此代碼,例如按鈕單擊處理程序,並將它傳遞給一些點。下面是如果我們通過(0,0)和結束(79,79)點的起點會發生什麼:
DrawGradient(new Point(0, 0), new Point(79, 79));
注意如何從紅色在左上角的色彩過渡沿着黃線在右下方變成藍色。如果我們顛倒了終點呢?
DrawGradient(new Point(79, 79), new Point(0, 0));
如所預期的,過渡現在去在相反的方向,與紅色在右下和藍色中的左上角。同樣,我們可以過渡使用端點水平線去左到右:
DrawGradient(new Point(0, 40), new Point(79, 40));
漸變線的終點並不需要是在禁區邊緣我們正在填補。例如,如果它們位於填充區域內,則漸變將以與線段長度相等的週期重複。我們結束了一個時髦的條紋效果:
DrawGradient(new Point(65, 25), new Point(45, 35));
您也可以將填充區域外的梯度端點。這導致一個更加微妙的色彩過渡:
DrawGradient(new Point(0, 90), new Point(140, 40));
希望幫助您瞭解漸變畫筆如何線性工作。不要害怕嘗試。你可以自己輕鬆地嘗試這些東西。這是學習的最佳方式。
您是否閱讀過'LinearGradientBrush'的文檔?在構造函數的文檔中有什麼特別的地方是你理解有困難? – 2014-11-06 00:42:56
你剛試過嗎?屏幕上的差異應該很明顯。 – BradleyDotNET 2014-11-06 00:50:37
@DJKRAZE真的嗎?那又是如何重複的? – BradleyDotNET 2014-11-06 00:51:40