2

以下に示すように、wpf アプリケーションでブラシを使用しています。やりたいことは、色の強度を制御することです。以下に示すように、ブラシは緑色に設定されています。しかし、私がやりたいのは、緑色の強度を制御することです。これにより、渡す値に応じて、緑色が明るくなったり濃くなったりすることがあります。誰かがアドバイスできるなら。

private readonly Pen P = new Pen(Brushes.Green, 6);
4

4 に答える 4

3

独自のブラシを作成できます。

private readonly Pen p = new Pen(new SolidColorBrush(Color.FromARGB(...)), 6);

次に、アルファ、赤、緑、青のコンポーネントを に渡すことで、色を正確に定義できますColor.FromARGB

于 2013-09-06T07:28:04.147 に答える
1

RGB の代わりに HSL カラー モデルを使用できます。RGB は、光の 3 原色の混合に基づいているため、ディスプレイに適しています。ただし、人間のモデルとはうまく適合しません。

HSL の要素は、色相、彩度、明度です。これは、実際の色を説明する方法と一致します。色相を調整すると色が変わります。色相を同じに保ち、他の要素を変更すると、さまざまな色が得られますが、関連していると見なされます。

彩度を変えると、色の濃さが変わります。彩度をゼロにすると、色が削除され、グレースケールになります。彩度が高いほど、色がより鮮やかになります。なんと言っても軽さです。明度ゼロは常に黒になります。最大値の明度は白です。両極端の間にあなたの色があります。

残念ながら、HSL は WPF / .NET でネイティブにサポートされていません。ただし、RGB と HSL の間で変換する独自の方法を作成するのは非常に簡単です。あなたのケースでは、これはおそらくメソッドまたは値コンバーター内でうまく機能します。

私は自分のウェブサイトに変換に関する記事を書きました。無料で使用できる変換用のダウンロード可能なサンプルとソース コードもあります (何か問題が発生した場合でも、私を訴えないことを約束してください!)。http://www.blackwasp.co.uk/RGBHSL.aspxにあります

于 2013-09-06T07:46:28.930 に答える