« タイトルバーのないフォームの移動 | トップページ | VS2008 XMLスキーマのプロジェクト取り込み »

2011年9月24日 (土)

DrawRectangle と Pen の設定による描画位置

DrawRectangle を使用した時、描画される位置をドット単位で意識しなくてはいけない事があったので、Pen の設定によりどの様に描画されるかを書き残しておきます。

さて、Pen設定による実際の描画を拡大した状態で、一覧にしてみました。黒の破線が、実際に指定したRectangle 構造体の位置を示し、赤の描画がPen設定のテストで表示された四角形です。

Pen.AlignmentPen.Width = 1Pen.Width = 2Pen.Width = 3Pen.Width = 4
Alignment.CenterW1 W2c W3c W4c
Alignment.InsetW1 W2i W3i W4i

Pen.Alignment = Alignment.Center の場合
Pen.Width に指定された値が奇数の場合は、指定した Rectangle を中心線となる様に奇麗に描画されます。偶数の場合は、指定した Rectangle の左側及び上側の方が、それぞれ右側、下側より1ドット分多い幅で描画されます。

Pen.Alignment = Alignment.Inset の場合
Pen.Width = 1 の場合は、Pen.Alignment = Alignment.Centerの場合と全く同じ様に描画されます。問題は、それ以外の幅のときです。指定した Rectangle の左側と上側は Rectangle で指定した線も含めて描画されますが、右側と下側は、Rectangleで指定した線を含めず、その内側から描画されます。

« タイトルバーのないフォームの移動 | トップページ | VS2008 XMLスキーマのプロジェクト取り込み »

覚え書き」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: DrawRectangle と Pen の設定による描画位置:

« タイトルバーのないフォームの移動 | トップページ | VS2008 XMLスキーマのプロジェクト取り込み »