GDI+绘制半圆按钮
新建一个用户控件:
public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); //设置控件区域 GraphicsPath path = new GraphicsPath(); path.AddPie(0, 0, this.Width, this.Height, 180, 180); this.Region = new Region(path); //获取画笔 using (Graphics g = this.CreateGraphics()) { g.FillPie(Brushes.Pink, new Rectangle(0, 0, this.Width, this.Height), 180, 180);//绘制半圆 g.DrawString(Text, new Font("微软雅黑", 12, FontStyle.Regular), Brushes.Black, TextPosition);//绘制显示文本 } } /// <summary> /// 公开属性,修改文本显示位置 /// </summary> public PointF TextPosition { get; set; } }
窗体调用代码:
this.userControl11.Text = "Hello World."; this.userControl11.TextPosition = new PointF(this.userControl11.Width / 4, this.userControl11.Height / 4);
效果图:
类似的原理,可以定义任意形状的按钮。