ControlPaintクラスのメソッドを利用することで、Windows標準コントロールの外観と同じものを描画することができる。
なお、.NET Framework 2.0以降ではSystem.Windows.Forms.VisualStyles名前空間のクラスを用いることもできる。
private void Form1_Paint( object sender, System.Windows.Forms.PaintEventArgs e )
{
// 枠線、隆起
ControlPaint.DrawBorder3D( e.Graphics, 10, 10, 50, 50, Border3DStyle.Bump );
// 枠線、沈降
ControlPaint.DrawBorder3D( e.Graphics, 80, 10, 50, 50, Border3DStyle.Sunken );
// 右側と左側だけ
ControlPaint.DrawBorder3D( e.Graphics, 10, 80, 50, 50, Border3DStyle.Bump, Border3DSide.Left Or Border3DSide.Right );
// スクロールバーのボタン (左側)
ControlPaint.DrawScrollButton( e.Graphics, 80, 80, 15, 15, ScrollButton.Left, ButtonState.Normal );
// スクロールバーのボタン (最大値、クリック時)
ControlPaint.DrawScrollButton( e.Graphics, 80, 100, 15, 15, ScrollButton.Max, ButtonState.Checked );
// スクロールバーのボタン (上側、押されている状態)
ControlPaint.DrawScrollButton( e.Graphics, 100, 80, 15, 40, ScrollButton.Up, ButtonState.Pushed );
// チェックボックス
ControlPaint.DrawCheckBox( e.Graphics, 120, 80, 15, 15, ButtonState.Checked );
// ラジオボタン
ControlPaint.DrawRadioButton( e.Graphics, 140, 80, 15, 15, ButtonState.Checked );
}
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
' 枠線、隆起
ControlPaint.DrawBorder3D(e.Graphics, 10, 10, 50, 50, Border3DStyle.Bump)
' 枠線、沈降
ControlPaint.DrawBorder3D(e.Graphics, 80, 10, 50, 50, Border3DStyle.Sunken)
' 右側と左側だけ
ControlPaint.DrawBorder3D(e.Graphics, 10, 80, 50, 50, Border3DStyle.Bump, Border3DSide.Left Or Border3DSide.Right)
' スクロールバーのボタン (左側)
ControlPaint.DrawScrollButton(e.Graphics, 80, 80, 15, 15, ScrollButton.Left, ButtonState.Normal)
' スクロールバーのボタン (最大値、クリック時)
ControlPaint.DrawScrollButton(e.Graphics, 80, 100, 15, 15, ScrollButton.Max, ButtonState.Checked)
' スクロールバーのボタン (上側、押されている状態)
ControlPaint.DrawScrollButton(e.Graphics, 100, 80, 15, 40, ScrollButton.Up, ButtonState.Pushed)
' チェックボックス
ControlPaint.DrawCheckBox(e.Graphics, 120, 80, 15, 15, ButtonState.Checked)
' ラジオボタン
ControlPaint.DrawRadioButton(e.Graphics, 140, 80, 15, 15, ButtonState.Checked)
End Sub
実行結果

ここで紹介した以外にも様々なコントロールを描画できる。 ただし、Windows XPスタイルの外観を持つコントロールを描画するには、UxTheme.dll等を使う必要がある。