7

私はプロジェクトに取り組んでおり、C# を使用して一種のカラー ピッカーを実行する必要があります。

そこで、Win Forms App ではこの背景を持つ Panel にすることにしました。

背景には、RGB の 3 色 (赤 (0 ~ 255)、青 (0 ~ 255)、緑 = 0) のグラデーションが必要です。

gu0oJ.png

しかし、これに何を使用すべきかについての情報が見つかりません。

私はいくつかのコードを書き込もうとしましたが、これが私がやったことです。

{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }



    private void Form1_Load(object sender, EventArgs e)
    {
        panel1.Paint += new PaintEventHandler(panel1_Paint);
        panel1.Refresh();
    }

    private void panel1_Paint(object sender, PaintEventArgs e)
    {
        Point startPoint = new Point(0, 0);
        Point endPoint = new Point(150, 150);

        LinearGradientBrush lgb =
            new LinearGradientBrush(startPoint, endPoint,     Color.FromArgb(255, 255, 0, 0), Color.FromArgb(255, 255, 255, 0));
        Graphics g = e.Graphics;
        g.FillRectangle(lgb, 0, 0, 150, 150);
       // g.DrawLine(new Pen(Color.Yellow, 1.5f), startPoint, endPoint);
    }
}

}

そして今、このグラデーションのパネルがあります

ORnzf.png

最初の画像でグラデーションを取得するには何を使用すればよいですか?

2 番目の質問: この背景をクリックした後、ピクセルの色を取得するにはどうすればよいですか?

4

2 に答える 2

1

マウス クリック イベント引数 e から、クリックの正確な座標を持つ Point を取得できます。

Point clickPoint = e.GetPosition(backgroundControlWithImg);

次に、次のようなものを使用して、その位置の画像の色を取得します。

System.Drawing.Image image = backgroundControl.BackgroundImage;
Bitmap _bitmap = new Bitmap(image);
Color _color = bitmap.GetPixel(Point.x, Point.y);

そんな感じ。カラーピッカー、WPF、または何を使用していますか?

于 2015-05-20T03:28:43.153 に答える