.NET TIPS Windowsフォームで四角を描くには?[2.0、3.0、3.5、3.5 SP1、VS 2008、C#、VB]デジタルアドバンテージ 一色 政彦2008/10/02 |
|
.NET Framework 3.5 SP1では、RectangleShapeコントロールが追加され、Windowsフォーム上に手軽に四角(=線による正方形もしくは長方形)が描けるようになった(※Visual Basic PowerPacksに所属するコントロールとして提供されるが、デフォルトのVisual Studio 2008 SP1環境の「C#」でも利用可能)。
本稿では、このRectangleShapeコントロールの利用方法を紹介する。なお、SP1を適用したVisual Studio 2008(以降、VS 2008)の使用を前提とする。
RectangleShapeコントロールを使用するには、VS 2008のIDEのWindowsフォーム・デザイナを表示した状態で[ツールボックス]の[Visual Basic PowerPacks]タブを開き、その中にある[RectangleShape]コントロールをフォーム上にドラッグ&ドロップする。これにより、次の画面のようにフォーム上に四角(=RectangleShapeコントロール)が配置される。
後は、フォーム上に配置されたRectangleShapeコントロール(Microsoft.VisualBasic.PowerPacks名前空間)の四角の真ん中をつかんでドラッグ&ドロップで移動させたり、四隅や上下左右の中央をつかんでドラッグ&ドロップで拡大/縮小させたりすればよい。
もちろん、次の画面のように[プロパティ]ウィンドウで位置(Location)やサイズ(Size)を指定してもよい。例えば正方形にしたい場合は、サイズ指定の方が便利だ。
RectangleShapeコントロールではいくつかの線種(=四角の種類)が(BorderStyleプロパティで)用意されている。具体的には以下のとおり(※この線種は、TIPS:Windowsフォームで直線を描くには?で提供されているものと同じである)。
これらの線種は[プロパティ]ウィンドウの[BorderStyle]プロパティで指定できる。さらに、次の画面のように[BorderWidth]プロパティで線の太さを変更したり、[BorderColor]プロパティで線の色を変えたりすることも可能だ。
四角の角に丸みを持たせることもできる。これには、次の画面のように、[CornerRadius]プロパティを指定すればよい。
当然ながらRectangleShapeコントロールの四角内を塗りつぶすこともできる。その際の色は、FillColorプロパティで設定できる。
また、その塗りつぶし方のパターンも(FillStyleプロパティで)55種類が用意されている。具体的には次の表のとおりだ。なお、この表の例ではFillColorプロパティに「ControlText」が設定されいるため、塗りつぶしの色は「黒」になっている。
なお、FillStyleプロパティが「Transparent」(透明)の場合、BackStyleプロパティに「Opaque」(不透明)を設定すれば、背景色(BackColorプロパティの値)が表示されるようになる。
FillColorプロパティで色を設定できることは説明したが、この色をグラデーションにすることもできる。これには、FillGradientStyleプロパティをデフォルトの「None」からほかの値に変更すればよい。FillGradientStyleプロパティに指定できる値は次の表のとおり(※このグラデーション・パターンも「TIPS:Windowsフォームで円を描くには?」で提供されているものと同じであるため、下の表ではOvalShapeコントロールによるグラデーション・パターン例をそのまま転載している)。
FillColorプロパティに設定された色から、FillGradientColorプロパティに設定された色へグラデーションが行われる。上の表のサンプルでは、FillColorプロパティに「Orange」を、FillGradientColorプロパティに「Yellow」を設定している。次の画面はその際の画面キャプチャだ。
なお、FillStyleプロパティには必ず「Solid」を指定する必要がある。これ以外の塗りつぶしパターンとの組み合わせはできない。
以上で説明してきた塗りつぶしのほかに、背景画像を設定することもできる。これには、BackgroundImageプロパティを設定すればよい。画像の表示パターンも選択可能で、これはBackgroundImageLayoutプロパティで指定できる。
BackgroundImageLayoutプロパティに指定できる値は次の表のとおり。
上の表のサンプルを見れば分かるが、背景色やグラデーションを設定している場合は、画像の後ろにその色が表示される。背景色を表示したくない場合は、BackStyleプロパティに「Transparent」を設定すればよい。また、グラデーションを表示したくない場合は、FillStyleプロパティに「Transparent」を設定すればよい。
最後に1つだけ注意点を挙げておく。RectangleShapeコントロールを利用したアプリケーションを実行するには、コンピュータに「Microsoft.VisualBasic.PowerPacks.Vs」というアセンブリ(.dllファイル)が必要となる。このアセンブリをインストール方法については、「TIPS:Windowsフォームで直線を描くには?」の「LineShapeコントロールの注意点」の項を参照してほしい。
利用可能バージョン:.NET Framework 2.0 利用可能バージョン:.NET Framework 3.0 利用可能バージョン:.NET Framework 3.5 利用可能バージョン:.NET Framework 3.5 SP1 カテゴリ:Windowsフォーム 処理対象:RectangleShapeコントロール 使用ライブラリ:RectangleShapeコントロール(Microsoft.VisualBasic.PowerPacks名前空間) 使用ライブラリ:Graphicsクラス(System.Drawing名前空間) 使用ライブラリ:Point型(System.Drawing名前空間) 使用ライブラリ:Size型(System.Drawing名前空間) 関連TIPS:Windowsフォームで直線を描くには? 関連TIPS:Windowsフォームで円を描くには? |