トップ回答者
ControlPaint.DrawReversibleFrameの外枠線の太さ、色指定

質問
回答
-
ControlPaint.DrawReversibleFrameメソッドで出来ることは、
指定したフレームスタイルで矩形を描画することです。
その場合の枠線の色は、枠が背景に対して常に表示されるように、
枠の塗りつぶし色を計算します。イメージとしては、デスクトップ上をマウスで範囲選択すると、
範囲を示す矩形の枠が表示され、もしその色と近いものがアイコン
や壁紙などの色にあれば、その部分はその色を反転させたような
色となってその部分の枠色が表示されます。これと同様です。なので、外枠線の太さ、色指定ということですが、外枠線という
ものは矩形の枠線の太さのことであれば、指定できません。
なお、第三引数のフレームスタイルが「Thick」の場合は、若干太いです。また色指定とは矩形の枠線の色ということであれば、上記で
説明しましたとおり、基本的には第二引数で指定した枠線の色になりますが
色が背景と近い場合は、その箇所は反転させたような色に自動でなります。単純に指定した太さ、指定した色で矩形を描画したいのであれば、
DrawRectangleメソッドというものがあります。- 回答としてマーク TFukuda-DocumentFusion 2011年4月13日 3:03
すべての返信
-
ControlPaint.DrawReversibleFrameメソッドで出来ることは、
指定したフレームスタイルで矩形を描画することです。
その場合の枠線の色は、枠が背景に対して常に表示されるように、
枠の塗りつぶし色を計算します。イメージとしては、デスクトップ上をマウスで範囲選択すると、
範囲を示す矩形の枠が表示され、もしその色と近いものがアイコン
や壁紙などの色にあれば、その部分はその色を反転させたような
色となってその部分の枠色が表示されます。これと同様です。なので、外枠線の太さ、色指定ということですが、外枠線という
ものは矩形の枠線の太さのことであれば、指定できません。
なお、第三引数のフレームスタイルが「Thick」の場合は、若干太いです。また色指定とは矩形の枠線の色ということであれば、上記で
説明しましたとおり、基本的には第二引数で指定した枠線の色になりますが
色が背景と近い場合は、その箇所は反転させたような色に自動でなります。単純に指定した太さ、指定した色で矩形を描画したいのであれば、
DrawRectangleメソッドというものがあります。- 回答としてマーク TFukuda-DocumentFusion 2011年4月13日 3:03
-
サンプルとしては以下のページが参考になるかと思います。
[ DOBON.NET ]
http://dobon.net/vb/dotnet/graphics/drawrectangle.html上記ページを参考にし、Penオブジェクト生成時に、色と幅(太さ)を指定します。
例えば以下のようにします。// FormにPictureBox1コントロールがあるものとする Graphics g = PictureBox1.CreateGraphics(); // Penオブジェクトの作成時に、色と太さを指定できる // 以下は例として、緑色で太さ3 Pen p = new Pen(Color.Green, 3); g.DrawRectangle(p, 10, 10, 50, 50); //リソースを開放する p.Dispose(); g.Dispose();