2

Windowsフォームにブレンディングを追加できる次のコードがあります。

public partial class Form1 : Form
{
    protected override void OnPaintBackground(PaintEventArgs e)
    {
        using (LinearGradientBrush brush = new LinearGradientBrush(this.ClientRectangle, 
               Color.White, 
               Color.Black, 
               LinearGradientMode.Vertical))
        {
            e.Graphics.FillRectangle(brush, this.ClientRectangle);
        }
    }
}

そして、これは結果です:

ここに画像の説明を入力

デフォルトでは、2 つの色のブレンドの「ピーク」はボックスの真ん中にあります。ブレンディングの「ピーク」が上に向かって約3/4になるようにコードを調整したいと思います。2つの色が混ざり始めるポイントを変更することはできますか?

前もって感謝します。

4

1 に答える 1

3

InterpolationColorsブラシのプロパティを適切なColorBlend例に設定できます。

using (var brush = new LinearGradientBrush(this.ClientRectangle,
    Color.Transparent, Color.Transparent, LinearGradientMode.Vertical))
{
    var blend = new ColorBlend();
    blend.Positions = new[] { 0, 3 / 4f, 1 };
    blend.Colors = new[] { Color.White, Color.Black, Color.Black };
    brush.InterpolationColors = blend;
    e.Graphics.FillRectangle(brush, this.ClientRectangle);
}

ここに画像の説明を入力

または、たとえば別のブレンド:

blend.Positions = new[] { 0, 1 / 2f, 1 };
blend.Colors = new[] { Color.White, Color.Gray, Color.Black };

ここに画像の説明を入力

于 2016-11-03T22:06:13.863 に答える