- 首先修改控件的DrawMode属性值为:OwnerDrawFixed
- 附上控件的DrawItem事件源码
private void tabControl_DrawItem(object sender, DrawItemEventArgs e)
{
#region 改变工作区,工作区这里主要是背景色,因为我Form的背景色就是(45, 45, 48),为了搭配起来好看
//绑定工作区
Rectangle rec01 = tabControl.ClientRectangle;
//设置工作区背景色
e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(45, 45, 48)), rec01);
#endregion
#region 重绘标签头=======================
//灰色背景
SolidBrush back = new SolidBrush(Color.FromArgb(45, 45, 48));
//蓝色字体
SolidBrush white = new SolidBrush(Color.FromArgb(122, 193, 255));
StringFormat sf = new StringFormat();
//文本水平/垂直居中对齐
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
for (int i = 0; i < tabControl.TabPages.Count; i++)
{
//绑定选项卡
Rectangle rec = tabControl.GetTabRect(i);
//设置选项卡背景
e.Graphics.FillRectangle(back, rec);
//设置选项卡字体及颜色
e.Graphics.DrawString(tabControl.TabPages[i].Text, new Font("微软雅黑", 9), white, rec, sf);
}
#endregion
}
3.下面附上还未完成的界面图,之后如果完成,我会第一时间更新上来(现在还没解决的问题:标签获取焦点后会有白边,很难看)