Я хотел нарисовать свой собственный элемент управления Tab из кода, и мне это удалось, вызвав метод tabControl1_DrawItem для события DrawItem.
Но когда я изменяю режим рисования на OwnerDrawFixed, весь элемент управления на вкладке внезапно появляется в 3D, а ранее, когда режим рисования был установлен в обычный режим, он отображается в 2D.И я не могу понять, какое свойство влияет на это, и как достичь 2D?
Это метод:
private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
{
TabPage page = tabControl1.TabPages[e.Index];
StringFormat drawFormat = new StringFormat();
drawFormat.Alignment = StringAlignment.Center;
drawFormat.LineAlignment = StringAlignment.Center;
var tabArea = tabControl1.GetTabRect(e.Index);
RectangleF tabTextArea = tabControl1.GetTabRect(e.Index);
Graphics g = e.Graphics;
Pen p = new Pen(Color.Empty);
if (!page.Enabled)
{
using (SolidBrush brush = new SolidBrush(SystemColors.GrayText))
{
g.DrawRectangle(p, tabArea);
e.Graphics.DrawString(page.Text, page.Font, brush, tabTextArea, drawFormat);
}
}
else
{
using (SolidBrush brush = new SolidBrush(page.ForeColor))
{
g.DrawRectangle(p, tabArea);
e.Graphics.DrawString(page.Text, page.Font, brush, tabTextArea, drawFormat);
}
}
}