2011年3月9日星期三

.Net Color 変換

 using System.Web.UI.WebControls;

    WebColorConverter webcolor = new WebColorConverter();
    Color c1 = Color.FromArgb(0xff, 0x00, 0x00);
    string s = webcolor.ConvertToString(c1);
    // ↑これだけで自動的に "#ff0000" という文字になります。
    Color c2 = (Color)webcolor.ConvertToFrom("#ff0000");
    // ↑これだけで自動的に "#ff0000" から Color を作ってくれます。
    Color c3 = (Color)webcolor.ConvertToFrom("blue");
    // ↑こういう風に "brue"、"red" などといった色名にも対応してます。

※ほんとうは TypeConverter のたぐいは
TypeDescriptor.GetConverter(Type)
で取得すべきなのですが WebColorConverter はどうやって取った
らいいのかわかりません(typeof(Color) だと ColorConverter が
返ってきてしまう)。

※WebColorConverter は System.Web.UI.WebControls ですが
もちろん Windows.Forms でも使えます。その場合は System.Web.dll
を参照設定すれば OK です。

没有评论: