Как сбросить заголовок заголовка TabPage? - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть TabControl с пятью вкладками и DrawMode, установленным на OwnerDrawFixed. Что я на самом деле пытаюсь сделать, это изменить цвет шрифта заголовка последней вкладки с черного на синий. Следующий код, который обрабатывает DrawItem -Event, работает нормально и показывает также следующие вкладки:

Код:

private void tabControl_DrawItem(object sender, DrawItemEventArgs e)
        {
            if (e.Index == 4)
            {                
                e.Graphics.DrawString("Notifications", new Font(tabControl.Font, FontStyle.Bold), new SolidBrush(SystemColors.HotTrack), new PointF(e.Bounds.X + 2, e.Bounds.Y + 3));
            }
            else
            {
                e.Graphics.DrawString(tabControl.TabPages[e.Index].Text, tabControl.Font, Brushes.Black, new PointF(e.Bounds.X + 5, e.Bounds.Y + 3));
            }
        }

GUI:

enter image description here

Как только я нажимаю на одну из вкладок, сам шрифт заголовка немного меняется, он становится немного "толще". Я действительно не знаю, как это описать, так что вот картинка:

enter image description here

То, что я здесь делал, щелкало первые три вкладки. Я уже знаю, что из-за DrawItem -Event закрашивается уже существующий шрифт.

Итак, мой вопрос теперь таков: могу ли я «сбросить» шрифт заголовка вкладки внутри обработчика, чтобы шрифт не закрашивался каждый раз и становился более толстым при срабатывании события?

Я уже пытался использовать e.Graphics.Clear() (потому что думал, что это просто "очистит" заголовок), однако это не показывает заголовок впоследствии, когда я рисую его, используя e.Graphics.DrawString().

У кого-нибудь есть идеи, как обойти этот "процесс перекраски"?

EDIT:

Я понял, что такое поведение происходит только тогда, когда вы устанавливаете свойство TabControl Appearance в Buttons, как я это сделал. Другие значения не приводят к возникновению такого поведения.

Так есть ли возможность обойти это, когда свойство Appearance установлено в Buttons?

...