FormにColorBlendで三色旗を描画する(2)
Methodを使って三色旗を描画してみます。
1)Windowsアプリケーションから起動してForm1を用意します。
2)using System.Drawing.Drawing2D; を追加する。
3)下記のMethodを入力します。
private void flag(PaintEventArgs e,Color c1,Color c2,Color c3)
{
Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Black, Color.Gold, LinearGradientMode.Vertical);
ColorBlend cb = new ColorBlend(6);
cb.Colors[0] = c1;
cb.Colors[1] = c1;
cb.Colors[2] = c2;
cb.Colors[3] = c2;
cb.Colors[4] = c3;
cb.Colors[5] = c3;
cb.Positions[0] = 0.0f;
cb.Positions[1] = 1 / 3f;
cb.Positions[2] = 1 / 3f;
cb.Positions[3] = 2 / 3f;
cb.Positions[4] = 2 / 3f;
cb.Positions[5] = 1.0f;
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();
}
4)プロパティのイベントボタンをクリック。
5)プロパティの右側のScrollBarを下に動かして、Paintをダブルクリック。
6)下記を入力します。
flag(e, Color.Red, Color.White, Color.Blue);

7)デバッグ開始(F5)します。

ロシアの国旗
flag(e, Color.White, Color.Blue, Color.Red);

イエメンの国旗
flag(e, Color.Red, Color.White, Color.Black);

オーストリアの国旗
flag(e, Color.Red, Color.White, Color.Red);

MethodのVerticalをHorizontalに入れ換えます。
フランスの国旗
flag(e, Color.Blue, Color.White, Color.Red);

アイルランドの国旗
flag(e, Color.Green, Color.White, Color.Orange);

ギニアの国旗
flag(e, Color.Red, Color.Yellow, Color.Green);

1)Windowsアプリケーションから起動してForm1を用意します。
2)using System.Drawing.Drawing2D; を追加する。
3)下記のMethodを入力します。
private void flag(PaintEventArgs e,Color c1,Color c2,Color c3)
{
Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Black, Color.Gold, LinearGradientMode.Vertical);
ColorBlend cb = new ColorBlend(6);
cb.Colors[0] = c1;
cb.Colors[1] = c1;
cb.Colors[2] = c2;
cb.Colors[3] = c2;
cb.Colors[4] = c3;
cb.Colors[5] = c3;
cb.Positions[0] = 0.0f;
cb.Positions[1] = 1 / 3f;
cb.Positions[2] = 1 / 3f;
cb.Positions[3] = 2 / 3f;
cb.Positions[4] = 2 / 3f;
cb.Positions[5] = 1.0f;
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();
}
4)プロパティのイベントボタンをクリック。
5)プロパティの右側のScrollBarを下に動かして、Paintをダブルクリック。
6)下記を入力します。
flag(e, Color.Red, Color.White, Color.Blue);

7)デバッグ開始(F5)します。

ロシアの国旗
flag(e, Color.White, Color.Blue, Color.Red);

イエメンの国旗
flag(e, Color.Red, Color.White, Color.Black);

オーストリアの国旗
flag(e, Color.Red, Color.White, Color.Red);

MethodのVerticalをHorizontalに入れ換えます。
フランスの国旗
flag(e, Color.Blue, Color.White, Color.Red);

アイルランドの国旗
flag(e, Color.Green, Color.White, Color.Orange);

ギニアの国旗
flag(e, Color.Red, Color.Yellow, Color.Green);

FormにColorBlendで三色旗を描画する(1)
ColorBlendを使ってグラデーションではなく、はっきりと色分け描画してみます。
ドイツの国旗を描画してみます。
1)Windowsアプリケーションから起動してForm1を用意します。
2)using System.Drawing.Drawing2D; を追加する。
3)プロパティのイベントボタンをクリック。
4)プロパティの右側のScrollBarを下に動かして、Paintをダブルクリック。
5)下記を入力します。
Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Black, Color.Gold, LinearGradientMode.Vertical);
ColorBlend cb = new ColorBlend(6);
cb.Colors[0] = Color.Black;
cb.Colors[1] = Color.Black;
cb.Colors[2] = Color.Red;
cb.Colors[3] = Color.Red;
cb.Colors[4] = Color.Gold;
cb.Colors[5] = Color.Gold;
cb.Positions[0] = 0.0f;
cb.Positions[1] = 1/3f;
cb.Positions[2] = 1/3f;
cb.Positions[3] = 2/3f;
cb.Positions[4] = 2/3f;
cb.Positions[5] = 1.0f;
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

6)デバッグ開始(F5)します。

ドイツの国旗の黒・赤・金は、義勇軍の軍服、黒地に赤の襟、金のボタンを表しているそうです。
Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Green, Color.Red, LinearGradientMode.Horizontal);
ColorBlend cb = new ColorBlend(6);
cb.Colors[0] = Color.Green;
cb.Colors[1] = Color.Green;
cb.Colors[2] = Color.White;
cb.Colors[3] = Color.White;
cb.Colors[4] = Color.Red;
cb.Colors[5] = Color.Red;
cb.Positions[0] = 0.0f;
cb.Positions[1] = 1/3f;
cb.Positions[2] = 1/3f;
cb.Positions[3] = 2/3f;
cb.Positions[4] = 2/3f;
cb.Positions[5] = 1.0f;
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

イタリアの国旗の緑・白・赤は、「国土」「雪・正義・平和」「愛国者の血・熱血」を表しているそうです。
ドイツの国旗を描画してみます。
1)Windowsアプリケーションから起動してForm1を用意します。
2)using System.Drawing.Drawing2D; を追加する。
3)プロパティのイベントボタンをクリック。
4)プロパティの右側のScrollBarを下に動かして、Paintをダブルクリック。
5)下記を入力します。
Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Black, Color.Gold, LinearGradientMode.Vertical);
ColorBlend cb = new ColorBlend(6);
cb.Colors[0] = Color.Black;
cb.Colors[1] = Color.Black;
cb.Colors[2] = Color.Red;
cb.Colors[3] = Color.Red;
cb.Colors[4] = Color.Gold;
cb.Colors[5] = Color.Gold;
cb.Positions[0] = 0.0f;
cb.Positions[1] = 1/3f;
cb.Positions[2] = 1/3f;
cb.Positions[3] = 2/3f;
cb.Positions[4] = 2/3f;
cb.Positions[5] = 1.0f;
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

6)デバッグ開始(F5)します。

ドイツの国旗の黒・赤・金は、義勇軍の軍服、黒地に赤の襟、金のボタンを表しているそうです。
Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Green, Color.Red, LinearGradientMode.Horizontal);
ColorBlend cb = new ColorBlend(6);
cb.Colors[0] = Color.Green;
cb.Colors[1] = Color.Green;
cb.Colors[2] = Color.White;
cb.Colors[3] = Color.White;
cb.Colors[4] = Color.Red;
cb.Colors[5] = Color.Red;
cb.Positions[0] = 0.0f;
cb.Positions[1] = 1/3f;
cb.Positions[2] = 1/3f;
cb.Positions[3] = 2/3f;
cb.Positions[4] = 2/3f;
cb.Positions[5] = 1.0f;
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

イタリアの国旗の緑・白・赤は、「国土」「雪・正義・平和」「愛国者の血・熱血」を表しているそうです。
複数の色による線形グラデーション(ColorBlend)を描画する(3)
LinearGradientBrush コンストラクタ (Point, Point, Color, Color)
と組み合わせて、線形グラデーションを複数本描画してみます。
ColorBlend メンバー
多色グラデーションの色のブレンドの補間に使用される、色と位置の配列を定義します。 このクラスは継承できません。
LinearGradientBrush.InterpolationColors プロパティ
複数の色による線形グラデーションを定義する ColorBlend を取得または設定します。
名前空間: System.Drawing.Drawing2D
1)Windowsアプリケーションから起動してForm1を用意します。
2)using System.Drawing.Drawing2D; を追加する。
3)プロパティのイベントボタンをクリック。
4)プロパティの右側のScrollBarを下に動かして、Paintをダブルクリック。
5)下記を入力します。
Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
new Point(0, 0), new Point(90, 0), Color.Red, Color.Violet);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Red, Color.Orange,
Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet };
cb.Positions = new float[] { 0f, 1 / 7f, 2 / 7f, 3 / 7f, 4 / 7f, 5 / 7f, 6 / 7f, 1f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

6)デバッグ開始(F5)します。

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
new Point(0, 0), new Point(30, 0), Color.Red, Color.Violet);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Red, Color.Orange,
Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet };
cb.Positions = new float[] { 0f, 1 / 7f, 2 / 7f, 3 / 7f, 4 / 7f, 5 / 7f, 6 / 7f, 1f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
new Point(0, 0), new Point(80, 10), Color.Red, Color.Violet);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Red, Color.Orange,
Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet };
cb.Positions = new float[] { 0f, 1 / 7f, 2 / 7f, 3 / 7f, 4 / 7f, 5 / 7f, 6 / 7f, 1f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
new Point(0, 0), new Point(30, 10), Color.Red, Color.Violet);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Red, Color.Orange,
Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet };
cb.Positions = new float[] { 0f, 1 / 7f, 2 / 7f, 3 / 7f, 4 / 7f, 5 / 7f, 6 / 7f, 1f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
new Point(0, 0), new Point(3, 75), Color.Red, Color.Violet);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Red, Color.Orange,
Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet };
cb.Positions = new float[] { 0f, 1 / 7f, 2 / 7f, 3 / 7f, 4 / 7f, 5 / 7f, 6 / 7f, 1f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
new Point(0, 0), new Point(1, 25), Color.Red, Color.Violet);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Red, Color.Orange,
Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet };
cb.Positions = new float[] { 0f, 1 / 7f, 2 / 7f, 3 / 7f, 4 / 7f, 5 / 7f, 6 / 7f, 1f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

と組み合わせて、線形グラデーションを複数本描画してみます。
ColorBlend メンバー
多色グラデーションの色のブレンドの補間に使用される、色と位置の配列を定義します。 このクラスは継承できません。
LinearGradientBrush.InterpolationColors プロパティ
複数の色による線形グラデーションを定義する ColorBlend を取得または設定します。
名前空間: System.Drawing.Drawing2D
1)Windowsアプリケーションから起動してForm1を用意します。
2)using System.Drawing.Drawing2D; を追加する。
3)プロパティのイベントボタンをクリック。
4)プロパティの右側のScrollBarを下に動かして、Paintをダブルクリック。
5)下記を入力します。
Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
new Point(0, 0), new Point(90, 0), Color.Red, Color.Violet);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Red, Color.Orange,
Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet };
cb.Positions = new float[] { 0f, 1 / 7f, 2 / 7f, 3 / 7f, 4 / 7f, 5 / 7f, 6 / 7f, 1f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

6)デバッグ開始(F5)します。

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
new Point(0, 0), new Point(30, 0), Color.Red, Color.Violet);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Red, Color.Orange,
Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet };
cb.Positions = new float[] { 0f, 1 / 7f, 2 / 7f, 3 / 7f, 4 / 7f, 5 / 7f, 6 / 7f, 1f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
new Point(0, 0), new Point(80, 10), Color.Red, Color.Violet);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Red, Color.Orange,
Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet };
cb.Positions = new float[] { 0f, 1 / 7f, 2 / 7f, 3 / 7f, 4 / 7f, 5 / 7f, 6 / 7f, 1f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
new Point(0, 0), new Point(30, 10), Color.Red, Color.Violet);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Red, Color.Orange,
Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet };
cb.Positions = new float[] { 0f, 1 / 7f, 2 / 7f, 3 / 7f, 4 / 7f, 5 / 7f, 6 / 7f, 1f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
new Point(0, 0), new Point(3, 75), Color.Red, Color.Violet);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Red, Color.Orange,
Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet };
cb.Positions = new float[] { 0f, 1 / 7f, 2 / 7f, 3 / 7f, 4 / 7f, 5 / 7f, 6 / 7f, 1f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
new Point(0, 0), new Point(1, 25), Color.Red, Color.Violet);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Red, Color.Orange,
Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet };
cb.Positions = new float[] { 0f, 1 / 7f, 2 / 7f, 3 / 7f, 4 / 7f, 5 / 7f, 6 / 7f, 1f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

複数の色による線形グラデーション(ColorBlend)を描画する(2)
もう少し色を増やしてみます。
ColorBlend メンバー
多色グラデーションの色のブレンドの補間に使用される、色と位置の配列を定義します。 このクラスは継承できません。
LinearGradientBrush.InterpolationColors プロパティ
複数の色による線形グラデーションを定義する ColorBlend を取得または設定します。
名前空間: System.Drawing.Drawing2D
1)Windowsアプリケーションから起動してForm1を用意します。
2)using System.Drawing.Drawing2D; を追加する。
3)プロパティのイベントボタンをクリック。
4)プロパティの右側のScrollBarを下に動かして、Paintをダブルクリック。
5)下記を入力します。
Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Red, Color.Blue, LinearGradientMode.Vertical);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Yellow, Color.Green,
Color.Cyan, Color.Blue, Color.Magenta};
cb.Positions = new float[] { 0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f};
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

6)デバッグ開始(F5)します。

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Red, Color.Blue, LinearGradientMode.Horizontal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Yellow, Color.Green,
Color.Cyan, Color.Blue, Color.Magenta};
cb.Positions = new float[] { 0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f};
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Red, Color.Blue, LinearGradientMode.ForwardDiagonal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Yellow, Color.Green,
Color.Cyan, Color.Blue, Color.Magenta};
cb.Positions = new float[] { 0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f};
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Red, Color.Blue, LinearGradientMode.BackwardDiagonal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Yellow, Color.Green,
Color.Cyan, Color.Blue, Color.Magenta};
cb.Positions = new float[] { 0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f};
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

ColorBlend メンバー
多色グラデーションの色のブレンドの補間に使用される、色と位置の配列を定義します。 このクラスは継承できません。
LinearGradientBrush.InterpolationColors プロパティ
複数の色による線形グラデーションを定義する ColorBlend を取得または設定します。
名前空間: System.Drawing.Drawing2D
1)Windowsアプリケーションから起動してForm1を用意します。
2)using System.Drawing.Drawing2D; を追加する。
3)プロパティのイベントボタンをクリック。
4)プロパティの右側のScrollBarを下に動かして、Paintをダブルクリック。
5)下記を入力します。
Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Red, Color.Blue, LinearGradientMode.Vertical);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Yellow, Color.Green,
Color.Cyan, Color.Blue, Color.Magenta};
cb.Positions = new float[] { 0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f};
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

6)デバッグ開始(F5)します。

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Red, Color.Blue, LinearGradientMode.Horizontal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Yellow, Color.Green,
Color.Cyan, Color.Blue, Color.Magenta};
cb.Positions = new float[] { 0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f};
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Red, Color.Blue, LinearGradientMode.ForwardDiagonal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Yellow, Color.Green,
Color.Cyan, Color.Blue, Color.Magenta};
cb.Positions = new float[] { 0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f};
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Red, Color.Blue, LinearGradientMode.BackwardDiagonal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Yellow, Color.Green,
Color.Cyan, Color.Blue, Color.Magenta};
cb.Positions = new float[] { 0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f};
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

複数の色による線形グラデーション(ColorBlend)を描画する
ColorBlend メンバー
多色グラデーションの色のブレンドの補間に使用される、色と位置の配列を定義します。 このクラスは継承できません。
LinearGradientBrush.InterpolationColors プロパティ
複数の色による線形グラデーションを定義する ColorBlend を取得または設定します。
名前空間: System.Drawing.Drawing2D
1)Windowsアプリケーションから起動してForm1を用意します。
2)using System.Drawing.Drawing2D; を追加する。
3)プロパティのイベントボタンをクリック。
4)プロパティの右側のScrollBarを下に動かして、Paintをダブルクリック。
5)下記を入力します。
Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Red, Color.Blue, LinearGradientMode.Vertical);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Green, Color.Blue };
cb.Positions = new float[] { 0.0f, 0.5f, 1.0f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

6)デバッグ開始(F5)します。

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
this.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Green, Color.Blue };
cb.Positions = new float[] { 0.0f, 0.5f, 1.0f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
this.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.ForwardDiagonal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Green, Color.Blue };
cb.Positions = new float[] { 0.0f, 0.5f, 1.0f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
this.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.BackwardDiagonal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Green, Color.Blue };
cb.Positions = new float[] { 0.0f, 0.5f, 1.0f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

多色グラデーションの色のブレンドの補間に使用される、色と位置の配列を定義します。 このクラスは継承できません。
LinearGradientBrush.InterpolationColors プロパティ
複数の色による線形グラデーションを定義する ColorBlend を取得または設定します。
名前空間: System.Drawing.Drawing2D
1)Windowsアプリケーションから起動してForm1を用意します。
2)using System.Drawing.Drawing2D; を追加する。
3)プロパティのイベントボタンをクリック。
4)プロパティの右側のScrollBarを下に動かして、Paintをダブルクリック。
5)下記を入力します。
Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(this.ClientRectangle,
Color.Red, Color.Blue, LinearGradientMode.Vertical);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Green, Color.Blue };
cb.Positions = new float[] { 0.0f, 0.5f, 1.0f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

6)デバッグ開始(F5)します。

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
this.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Green, Color.Blue };
cb.Positions = new float[] { 0.0f, 0.5f, 1.0f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
this.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.ForwardDiagonal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Green, Color.Blue };
cb.Positions = new float[] { 0.0f, 0.5f, 1.0f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();

Graphics g = this.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(
this.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.BackwardDiagonal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Red, Color.Green, Color.Blue };
cb.Positions = new float[] { 0.0f, 0.5f, 1.0f };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, this.ClientRectangle);
lgb.Dispose();
g.Dispose();
