298
Chương 8: Đồ họa, đa phương tiện, và in ấn
using System.Drawing.Drawing2D;
public class EllipseShape : System.Windows.Forms.Control {
private GraphicsPath path = null;
private void RefreshPath() {
// Tạo GraphicsPath cho shape và áp dụng nó vào
// điều kiểm bằng cách thiết lập thuộc tính Region.
path = new GraphicsPath();
path.AddEllipse(this.ClientRectangle);
this.Region = new Region(path);
}
protected override void OnResize(System.EventArgs e) {
base.OnResize(e);
RefreshPath();
this.Invalidate();
}
protected override void OnPaint
(System.Windows.Forms.PaintEventArgs e) {
base.OnPaint(e);
if (path != null) {
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
e.Graphics.FillPath(new SolidBrush(this.BackColor), path);
e.Graphics.DrawPath(new Pen(this.ForeColor, 4), path);
}
}
}
Bạn có thể định nghĩa điều kiểm
EllipseShape
trong một Class Library Assembly độc lập để
nó có thể được thêm vào hộp công cụ của Microsoft Visual Studio .NET và được sử dụng lúc