ColorのRGBだけを取り出して16進数にするコード
せっかく作ったけど使わなそうなのでここにメモ
ColorはSystem.Windows.Mediaの方です。
/// <summary> /// 24bitの16進数を返します /// </summary> public static string ToHexadecimal(this Color source) { return BitConverter.ToString(new byte[] { source.R, source.G, source.B }).Replace("-", ""); } /// <summary> /// 24bitの16進数からColorを作成します /// </summary> public static Color HexadecimalToColor(this string source) { var bytes = source .TrimStart('#') .Where(_ => _ != '-') .Select((c, i) => Tuple.Create(c, i)) .GroupBy(_ => _.Item2 / 2, _ => _.Item1)//2文字ずつ区切る .OrderBy(_ => _.Key) .Select(_ => byte.Parse(new string(_.ToArray()), NumberStyles.HexNumber)) .ToArray(); return Color.FromRgb(bytes[0], bytes[1], bytes[2]); }