代码之家  ›  专栏  ›  技术社区  ›  vldmrrdjcc

当我将绘图模式更改为OwnerDrawFixed TabControl时,将外观更改为3D

  •  0
  • vldmrrdjcc  · 技术社区  · 5 年前

    我想从代码中绘制我自己的Tab控件,通过在DrawItem事件上调用tabControl1\u DrawItem方法,我成功地实现了这一点。

    但当我将绘图模式更改为OwnerDrawFixed时,整个选项卡控件突然显示为3D,而之前将绘图模式设置为Normal时,它显示为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);
                    }
                }
            }
    
    0 回复  |  直到 5 年前