2009年11月27日(金)

C# 指定色の明暗

テーマ:C#

ボタンなどを見ていると、凹凸を表現するために影と光の部分があります。

それを、指定した色でも表現できないかと思案していたら

各色を返してくれるクラスを見つけました。

ControlPaintというやつです。

種類は4つ。


ControlPaint.LightLight(基本色);
ControlPaint.Light(基本色);
ControlPaint.Dark(基本色);
ControlPaint.DarkDark(基本色);


上から順に

・強い光色

・弱い光色

・弱い影

・強い影

となっています。


以下、試しに作ってみたコードです。


とりあえず、フォームの中央にPictureBoxを貼りつけ

名前をpictureBox1とした上で。




Graphics g;
private void Form1_Load(object sender, EventArgs e)
{

  //描画用Bitmapを作成(PictureBoxと同サイズにする)
  Bitmap bitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);

  //BitmapのGraphicを取得
  g = Graphics.FromImage(bitmap);

  //PictureBoxにBitmapを挿入
  pictureBox1.Image = bitmap;

  //描画処理へ
  paint();
}


void paint()
{

  //色の生成

  //※基本色を青色とする
  Color c = Color.Blue;

  //色を保持するリストを生成
  List<Color> myC = new List<Color>();

  myC.Add(ControlPaint.LightLight(c));
  myC.Add(ControlPaint.Light(c));
  myC.Add(c);
  myC.Add(ControlPaint.Dark(c));
  myC.Add(ControlPaint.DarkDark(c));


  //Bitmapをとりあえず白で塗りつぶす

  g.Clear(Color.White);


  for(int i = 0; i < myC.Count; i++)

  {
    //10,20,30,40...とX・Yの位置をずらしていく
    g.FillRectangle(new SolidBrush(myC[i]),
new Rectangle((i + 1) * 10, (i + 1) * 10, 50, 50));
  }
}




こんなので出来ちゃいました。


実行結果は↓
おーう なんじゃそら-色の明暗


ボタンっぽいのを自作で描画するときに使えそうです。

このControlPaintは、見てると結構便利なものがたくさんあります。




AD
いいね!した人  |  コメント(0)  |  リブログ(0)

55さんの読者になろう

ブログの更新情報が受け取れて、アクセスが簡単になります

コメント

[コメントをする]

コメント投稿

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。