Color構造体のプロパティはすべて読み取り専用のため、色を変更するときにはオブジェクトを作成し直します。
メソッド | 作成基準 | 備考 |
---|---|---|
FromArgb(int argb) | 32bitのARGB値から | argbは、AARRGGBBの順 |
FromArgb(int alpha, Color baseColor) | 8bitのアルファ値と、基となるColor構造体から | |
FromArgb(int red, int green, int blue) | 8bitの赤、緑、青から | アルファ値は255 (不透明) となる |
FromArgb(int alpha, int red, int green, int blue) | 8bitのアルファ値、赤、緑、青から | 引数はすべて0~255の範囲 |
Color blue = Color.FromArgb(unchecked((int)0xFF0000FF)); Color red = Color.FromArgb(255, 0, 0);
HSL (HLS) の値を取得するメソッドは用意されていますが、設定する方法は提供されていないため、その必要があるときには独自に実装します。Is there a built-in C#/.NET System API for HSV to RGB? - Stack Overflow
簡単にはColor.Redのようにすることで取得できます。これはnew Color(KnownColor.Red)
とすることと同じです。Red - Color.cs
メソッド | 作成基準 |
---|---|
FromKnownColor(KnownColor color) | KnownColor列挙型の要素から |
FromName(string name) | 定義済みの色の名前から (有効な名前は、KnownColor列挙型の要素の名前と同じ) |
public static Color FromKnownColor( KnownColor color )Color.FromKnownColor メソッド (KnownColor) (System.Drawing) | MSDN
colorの有効性が確認された上で、Color(color)コンストラクタで作成されたインスタンスが返されます。FromKnownColor - Color.cs
public static Color FromName( string name )Color.FromName メソッド (String) (System.Drawing) | MSDN
プロパティ | 対象 |
---|---|
ActiveBorder | アクティブなウィンドウ境界線 |
︙ | |
Highlight | 選択された項目の背景色 |
︙ | |
Window | クライアント領域の背景色 |
WindowText | クライアント領域のテキストの色 |
すべて静的なプロパティで、SystemColors.WindowText
のように取得できます。
プロパティ | 対象 |
---|---|
型 | プロパティ | 内容 |
---|---|---|
byte | A | アルファ要素の値 |
byte | R | 赤要素の値 |
byte | G | 緑要素の値 |
byte | B | 青要素の値 |
Color | Empty | nullである色 |
bool | IsEmpty | trueならば、初期化されていない。Emptyである以外に、未定義の色もこの状態となる IsEmpty - Color.cs |
bool | IsKnownColor | trueならば、定義済みの色 |
bool | IsNamedColor | trueならば、名前付きの色 |
bool | IsSystemColor | trueならば、システム カラー |
Color color = Color.AliceBlue; // 定義済みの色 string name = color.Name; // "AliceBlue" byte red = color.R; // 240 int argbVal = color.ToArgb(); // -984833 string argb = Convert.ToString(argbVal, 16); // "fff0f8ff"
Color c1 = Color.Empty; // Name=0, ARGB=(0, 0, 0, 0) Color c2 = Color.Transparent; // Name=Transparent, ARGB=(0, 255, 255, 255)
RGB値を指定して作成した色は、そのコードが名前となります。
Color color = Color.FromArgb(0x1, 0x2, 0x3); string name = color.Name; // "ff010203" int argbVal = color.ToArgb(); // -16711165 (0xff010203) string argb = Convert.ToString(argbVal, 16); // "ff010203" string rgb = Convert.ToString(argbVal, 16).Remove(0, 2); // "010203"
メソッド | 値 | 範囲 |
---|---|---|
GetHue() | 色相値 (hue value) | 0.0-360.0 |
GetSaturation() | 彩度値 (saturation value) | 0.0-1.0 |
GetBrightness() | 輝度値 (lightness value)
名前はBrightnessだが、得られるのはHSLのLightnessの値 GetBrightness - Color.cs |
0.0-1.0 |