Csharp/C Sharp by API/System.Drawing.Drawing2D/PenAlignment
PenAlignment.Center
using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form {
protected override void OnPaint(PaintEventArgs e) {
Graphics g = e.Graphics;
Pen p = new Pen(Color.Black, 3);
p.Alignment = PenAlignment.Center;
g.DrawRectangle(p, 3, 3, 8, 7);
p.Dispose();
}
public static void Main() {
Application.Run(new Form1());
}
}
PenAlignment.Inset
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
class GradientPen: Form
{
public static void Main()
{
Application.Run(new GradientPen());
}
public GradientPen()
{
ResizeRedraw = true;
}
protected override void OnPaint(PaintEventArgs pea)
{
DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
}
protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
{
Brush lgbrush = new LinearGradientBrush(
new Rectangle(0, 0, cx, cy),
Color.White, Color.Black,
LinearGradientMode.BackwardDiagonal);
Pen pen = new Pen(lgbrush, Math.Min(cx, cy) / 25);
pen.Alignment = PenAlignment.Inset;
grfx.DrawRectangle(pen, 0, 0, cx, cy);
grfx.DrawLine(pen, 0, 0, cx, cy);
grfx.DrawLine(pen, 0, cy, cx, 0);
}
}