2017年7月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

Amazonウィジェット

  • miniPC
  • 最近買った本
  • Raspberry Pi
  • クアッドコプター
  • 書籍ランキング

AdSense

  • 広告
無料ブログはココログ

« Python lsコマンドからファイルのリストを受け取るやりかた | トップページ | C# イベントを発生させる方法 »

2016年11月 6日 (日)

C# 図形の塗りつぶし色の変え方

C# Csharp グラフィック 塗りつぶし四角形の色の変え方。システム色以外のRGBによる設定

MSDNのドキュメントはどれもすさまじい日本語で、英語の原文を読んだほうがよほどましな気がした。キーワード検索すると必ず日本語のページが出てくるので、最後にenglishを入れて検索する。

Rectangle構造体 これはあくまでも構造体のようで、描画をするためのものではない。
サイズを指定するようなもの
https://msdn.microsoft.com/ja-jp/library/system.drawing.rectangle(v=vs.110).aspx

上のページから、備考の欄にFillRectangleメソッドへのリンクが貼ってある。
https://msdn.microsoft.com/ja-jp/library/yysstebh(v=vs.110).aspx

このページの構文のところで
BrushとRectangleを引数として受け取るということがわかる。

Brushのリンクを辿ると、
https://msdn.microsoft.com/ja-jp/library/system.drawing.brush(v=vs.110).aspx
四角形、楕円、扇形、多角形、およびパスなどのグラフィカル形状の内部を塗りつぶすに使用されるオブジェクトを定義します。
とあるが、abstractがついているのでこのままではオブジェクトを作れない。
このクラスを継承しているクラスが他にあるということ。

解説のところに、
これは抽象基本クラスであり、インスタンス化することはできません。 Brush オブジェクトを作成するから派生したクラスを使用して Brush, など SolidBrush, 、TextureBrush, 、および LinearGradientBrushです。
ということが書かれているので、SolidBrushのリンクを辿ってみた。

すると、ようやくやりたいことが見えてきた。
https://msdn.microsoft.com/ja-jp/library/system.drawing.solidbrush(v=vs.110).aspx

この中の例をみると、
Color customColor = Color.FromArgb(50, Color.Gray);
SolidBrush shadowBrush = new SolidBrush(customColor);

となっていたので、
Color.FromArgb
とVisualStudio内で打ち込んでみて、Intelisenseで表示される、
RGBをint値でそれぞれ指定するメソッドを選べばいいことがわかった。

最終的にコードはこんな風になった。

SolidBrush brush = new SolidBrush(Color.FromArgb(150,0,30));
g.FillRectangle(brush, 0,0,100,100);

SolidBrushにColorを渡してまずはブラシをつくり、
それを図形を描画するメソッドに渡せば、その色で塗りつぶしが実行できるということ。

« Python lsコマンドからファイルのリストを受け取るやりかた | トップページ | C# イベントを発生させる方法 »

C#」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/518723/64315921

この記事へのトラックバック一覧です: C# 図形の塗りつぶし色の変え方:

« Python lsコマンドからファイルのリストを受け取るやりかた | トップページ | C# イベントを発生させる方法 »