PR

 画面に図形を描画するには,Graphicsクラスを利用する。ただし,new演算子を用いてオブジェクトを生成するのではなく,描画対象のオブジェクト(コントロール)のCreateGraphicsメソッドから得られるGraphicsオブジェクトを使う。

 また,ウインドウの再描画処理を実装するときは,コントロールのPaintイベントのイベント・ハンドラが用意しているSystem.Windows.Forms.PaintEventArgs引数のGraphicsプロパティから取得したGraphicsオブジェクトを利用する。

 Graphicsオブジェクトは,WindowsのGDI+をカプセル化したものである。

サンプルコードを見る


名前空間
System.Drawing
対応バージョン
.NET Framework 2.0,1.1,1.0
.NET Compact Framework 2.0,1.0
主なプロパティ
Clip
描画領域を限定する領域を取得または設定する。Regionオブジェクトを取得または設定する。

ClipBounds
クリッピング領域に外接するRectangleF値を取得する。

CompositingMode
複合イメージの描画方法を指定する値を取得する。CompositingMode列挙型の値が返る。
CompositingMode.SourceCopyのときは,色がレンダリングされるときに,背景色を上書きする。
CompositingMode.SourceOverのときは,色がレンダリングされるときに,背景色とブレンドする。ブレンドは,レンダリングする色のアルファ値によって決まる。

CompositingQuality
描画する複合イメージのレンダリング品質を取得または設定する。CompositingQuality型の値を使う。
CompositingQuality.AssumeLinearは,線形の値であると想定する。
CompositingQuality.Defaultは,既定の品質。
CompositingQuality.GammaCorrectedはガンマ補正を使用する。
CompositingQuality.HighQualityは高品質で,低速のレンダリング。
CompositingQuality.HighSpeedは高速で低品質のレンダリングである。

DpiX
水平方向の解像度を取得する。

DpiY
垂直方向の解像度を取得する。

InterpolationMode
補間モードを取得または設定する。InterpolationMode列挙型の値を使用する。
InterpolationMode.Bicubicは,双三次補間。事前フィルタ処理は実行されない。このモードは,イメージを元の大きさの25%以下に縮小する処理には適していない。
InterpolationMode.Bilinearは双一次補間。事前フィルタ処理は実行されない。このモードは,イメージを元の大きさの50%以下に縮小する処理には適していない。
InterpolationMode.Defaultは既定のモード。
InterpolationMode.Highは高品質補間。
InterpolationMode.HighQualityBicubicは,高品質双三次補間。事前フィルタ処理が適用され,高品質の縮小処理が実行される。
InterpolationMode.HighQualityBilinearは,高品質双一次補間。事前フィルタ処理が適用され,高品質の縮小処理が実行される。
InterpolationMode.Lowは,低品質補間。
InterpolationMode.NearestNeighborは,最近傍補間。

IsClipEmpty
クリッピング領域が空かどうかを示す値を取得する。クリッピング領域が空の場合はTrue,それ以外の場合はFalseである。

IsVisibleClipEmpty
表示クリッピング領域が空かどうかを示す値を取得する。表示クリッピング領域が空の場合はTrue,それ以外の場合はFalseである。

PageScale
ワールド単位とページ単位の間のスケーリングを取得または設定する。

PageUnit
ページ座標で使用する長さの単位を取得または設定する。GraphicsUnit列挙型の値を利用する。

PixelOffsetMode
レンダリング時のピクセルのオフセット方法を指定する値を取得または設定する。PixelOffsetMode列挙型の値を使用する。
PixelOffsetMode.Defaultは既定のモード。
PixelOffsetMode.Halfは,高速アンチエイリアス処理用に,ピクセルを水平と垂直の両方向に-0.5単位だけオフセットする。
PixelOffsetMode.HighQualityは,高品質で低速なレンダリング。
PixelOffsetMode.HighSpeedは,高速で,低品質のレンダリング。
PixelOffsetMode.Noneはピクセルをオフセットしない。

RenderingOrigin
ディザリングおよびハッチ・ブラシに使用する,レンダリングの原点を取得または設定する。

SmoothingMode
レンダリング品質を取得または設定する。SmoothingMode列挙型の値を使用する。
SmoothingMode.AntiAliasは,アンチエイリアス処理する。
SmoothingMode.Defaultは,アンチエイリアス処理しない。
SmoothingMode.HighQualityは,高品質で低速なレンダリング。
SmoothingMode.HighSpeedは,高速で低品質のレンダリング。
SmoothingMode.Noneはアンチエイリアス処理しない。

TextContrast
レンダリング・テキストのガンマ補正値を取得または設定する。

TextRenderingHint
テキストのレンダリング・モードを取得または設定する。TextRenderingHint列挙型の値を使用する。
TextRenderingHint.AntiAliasは,アンチエイリアス処理されたグリフ・ビットマップを使用して,ヒンティングなしで各文字を描画する。アンチエイリアスによって品質が向上する。ヒンティングがオフにされるため,ステム幅の違いが目立つ。
TextRenderingHint.AntiAliasGridFitは,アンチエイリアス処理されたグリフ・ビットマップを使用して,ヒンティングありで各文字を描画する。アンチエイリアスによってより高い品質が得られるが,パフォーマンスは大きく低下する。
TextRenderingHint.ClearTypeGridFitは,ClearType処理したグリフ・ビットマップを使用して,ヒンティングありで各文字を描画する。最高の品質になる。
TextRenderingHint.SingleBitPerPixelは,グリフ・ビットマップを使用して各文字を描画する。ヒンティングは使用しない。
TextRenderingHint.SingleBitPerPixelGridFitは,グリフ・ビットマップを使用して各文字を描画する。ヒンティングを使用して,文字のステム部分と曲線部分の見た目を向上する。
TextRenderingHint.SystemDefaultは,グリフ・ビットマップを使用し,システムの既定のレンダリング・ヒントで各文字を描画する。ユーザーがシステムで選択した,すべてのフォント・スムージング設定を使用してテキストを描画する。

VisibleClipBounds
表示クリッピング領域に外接する四角形を取得する。

主なメソッド
Clear
描画サーフェイス全体を消去し,指定した背景色で塗りつぶす。

CopyFromScreen
スクリーン・ショットを撮る。すなわち,画面から描画サーフェイスに,画像データをコピーする。

DrawArc
楕円の一部を表す円弧を描画する。

DrawBezier
4つのPoint値で定義されるベジエ・スプラインを描画する。

DrawBeziers
Point値の配列から一連のベジエ・スプラインを描画する。

DrawClosedCurve
Point値の配列で定義された,閉じたカーディナル・スプラインを描画する。

DrawCurve
指定したPoint値の配列を通過するカーディナル・スプラインを描画する。

DrawEllipse
指定した四角形に外接する楕円を描画する。

DrawIcon
アイコンを描画する。

DrawIconUnstretched
アイコンをスケーリングしないで描画する。

DrawImage
指定した画像を,指定した位置に元の大きさで描画する。

DrawImageUnscaled
指定した画像を,指定した位置に元の大きさで描画する。

DrawImageUnscaledAndClipped
指定した画像を,指定した位置に元の大きさで描画する。必要に応じて,指定された四角形内に収まるようにイメージをクリップする。

DrawLine
指定した2つの点を結ぶ線分を描画する。

DrawLines
指定したPoint値の配列で表される複数の点を接続する一連の線分を描画する。

DrawPath
GraphicsPathを描画する。

DrawPie
扇形を描画する。

DrawPolygon
Point値の配列で定義された多角形を描画する。

DrawRectangle
四角形を描画する。

DrawRectangles
Rectangle値の配列で指定された一連の四角形を描画する。

DrawString
文字列を描画する。

ExcludeClip
Rectangle値で指定した領域が描画対象から除外されるように,クリップ領域を更新する。

FillClosedCurve
Point値の配列で定義される,閉じたカーディナル・スプライン曲線の内部を塗りつぶす。

FillEllipse
楕円の内部を塗りつぶす。

FillPath
GraphicsPathの内部を塗りつぶす。

FillPie
扇形の内部を塗りつぶす。

FillPolygon
多角形の内部を塗りつぶす。

FillRectangle
四角形の内部を塗りつぶす。

FillRectangles
一連の四角形の内部を塗りつぶす。

FillRegion
Region値で指定された領域の内部を塗りつぶす。

Flush
保留中の描画操作をすべて強制実行し,操作の終了を待機せずにすぐに制御を戻す。

FromHdc
Windowsのデバイス・コンテキストのハンドルから新たにGraphicsオブジェクトを作成する。

FromHwnd
Windowsのウインドウ・ハンドルから新たにGraphicsオブジェクトを作成する。

GetNearestColor
指定したColor値に最も近い色を取得する。

IsVisible
指定した点が,このGraphicsオブジェクトの表示クリップ領域内にあるかどうかを調べる。表示クリップ領域内に含まれる場合はTrue,それ以外の場合はFalseである。

MeasureCharacterRanges
指定した文字列内の文字位置の範囲に,それぞれが外接するRegionオブジェクトの配列を取得する。

MeasureString
指定したFontオブジェクトで描画した場合の,指定した文字列の大きさを計測する。

ResetClip
クリップ領域をリセットする。