投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/5/12 23:13:00
Color 構造体は Serializable 属性が付与されていますので、
そのまま BinaryFormatter などで永続化できます。

あるいは、ここの過去ログにもあるように、ColorConverter クラスを使って
処理することもできます。
http://rucio.bbs.coocan.jp/?m=listthread&t_id=159&summary=on

また、ARGB 値への変換には Color 構造体自体の ToArgb メソッドや
A プロパティ、B プロパティ、G プロパティ、R プロパティを使う事ができます。
なお、HTML 形式などへの変換のために、ColorTranslator クラスも用意されています。


なお非システムカラーの場合には、その ARGB 値が常に固定的なので、
 Color.Empty
   A=00, R=00, G=00, B=00
 Color.Transparent
   A=00, R=ff, G=ff, B=ff
 Color.Red
   A=ff, R=ff, G=00, B=00
 Color.Green
   A=ff, R=00, G=80, B=00
 Color.Lime
   A=ff, R=00, G=ff, B=00
 Color.Blue
   A=ff, R=00, G=ff, B=ff
として表現できますが、変換元の色がシステムカラーであった場合は、
ARGB 化する事が好ましくないケースもありますので御注意ください。
(たとえば SystemColors.Control や SystemColors.Desktop など)