E színátmenethez a PathGradientBrush osztályt kell felhasználnunk. A könnyebb megértés kedvéért készítsünk egy egyszerű példát, melyben csupán egy téglalapot festünk ki. A PathGradientBrush használatakor több szint is megadhatunk, melyek között a színátmenet végbemegy. A színek száma attól függ, hogy hány töréspont van a grafikánkban. Egy téglalap esetén ezt még egyszerű meghatározni, így könnyen létrehozhatunk egy tömböt, mely négy színt tárol.
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Color[] c = new Color[]
{
Color.Red,
Color.Violet,
Color.Lime,
Color.Blue
};
Készítsük most el a GraphicsPath segítségével a szükséges grafikai objektumot, mely csupán egyetlen téglalapból áll, melynek mérete egyezik a Form aktuális méretével.
Graphics g = e.Graphics;
GraphicsPath gp = new GraphicsPath();
gp.AddRectangle(this.ClientRectangle);
A PathGradientBrush osztály létrehozásakor annak konstruktorában meg kell adnunk a GraphicsPath osztály imént létrehozott példányát.
PathGradientBrush pgb = new PathGradientBrush(gp);
A kitöltő minta középpontja egy általunk meghatározott pont lehet, melyet a CenterPoint property-n keresztül tudunk megadni egy Point típusban. Ehhez a középponthoz egy tetszőleges színt is rendelhetünk a CenterColor property-n keresztül.
pgb.CenterPoint=centerPoint;
pgb.CenterColor=Color.Yellow;
A téglalap négy sarkához hozzárendelhetjük a fenti tömbben tárolt színeket a SurroundColors property-n keresztül.
Felhasználva a rajzoláskor az így létrehozott ecsetet, mindig öt szín között jön létre a színátmenet: a négy sarokpont és a középpont színe között arányosan.
g.FillRectangle(pgb, this.ClientRectangle);
}