LoginSignup
2
2

More than 5 years have passed since last update.

カラーサンプルを用意する備忘録

Last updated at Posted at 2015-09-30

概要

WPFで見栄えを良くする為に、とにかくカラーサンプルを用意したくなる時があります。
カラフルな箱を沢山並べたり・・・
ランダムに色コードを生成しても良いのですが、乱数で生成された色コードでは、綺麗でない色が生成される確率が高いためイマイチ見栄えがよく有りません。

System.Windows.Media.Colorsを利用する

皆さんご存の通り、Colorsクラスに、well-known Colors(有名な色、代表的な色)が用意されています。
ですが、実装を調べてみると列挙型では無くて、プロパティとして実装されています。
MSDN Colors
内部でKnownColor列挙型を利用しているので、そちらを公開してくれていれば、話は速いのですが、残念ながらinternalクラスです。
列挙型ならEnum.GetNames()メソッドを使えたんですけどね。
そんな時には、リフレクションです。

var methods = typeof(Colors).GetMethods(BindingFlags.Public | BindingFlags.Static | BindingFlags.GetProperty);

for(int i = 0; i < methods.Count(); i++)
{
    var color = (Color)methods[i].Invoke(methods[i], null);
}

リフレクションは、速度が遅いので使い方を誤ると痛いしっぺ返しを受けますが、起動時に一回だけカラーコードを引っこ抜くので有れば、問題はありません。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2