Active TabPage имеет тот же цвет, что и мои элементы управления - PullRequest
2 голосов
/ 24 ноября 2010

Я создал TabControl и хочу использовать некоторые элементы управления (ярлыки, текстовые поля, кнопки и выпадающие списки).Проблема в том, что когда я выбираю вкладку, цвет фона по умолчанию не совпадает с цветом фона по умолчанию формы элементов управления, которые раньше были включены.Цвет вкладки и элементов управления слишком похожи, и это не очень хорошо выглядит.

Я посмотрел, но люди, кажется, говорят, что цвета вкладок невозможноКакое хорошее решение для этого?Должен ли я поместить какую-то рамку, ярлык или что-то еще внутри вкладки, чтобы сделать фон темнее?

1 Ответ

1 голос
/ 24 ноября 2010

Легко заставить ваши вкладки использовать тот же цвет фона, что и у вашей формы:

  1. Убедитесь, что TabPage, который вы хотите изменить,видно в конструкторе.Нажмите на него, чтобы выбрать его.

  2. В окне свойств найдите свойство UseVisualStyleBackColor и установите для него значение False.

И в качестве бонуса, после того, как вы установили это свойство на False, вы можете указать любой цвет фона, который вы хотите для TabPage, используя BackColor свойство .

Причина, по которой это работает, заключается в том, что вы заставляете вкладку не отображать визуальные стили (т. Е. Темы, определенные в Windows).Тема по умолчанию на самом деле окрашивает вкладки в чуть более светлый оттенок цвета, используемого для рисования других трехмерных элементов (таких как формы и кнопки).Проблема (в частности, в теме Aero) заключается в том, что цвет стандартных трехмерных элементов уже настолько светлый, что вкладки выглядят почти белыми!

Если вы удовлетворены контрастом элементов управления по отношению кСтандартный цвет фона вашей формы, я предлагаю просто установить для свойства UseVisualStyleBackColor значение False и оставить его без указания собственного цвета фона.Соблюдение темы пользователя по умолчанию, как правило, является лучшей практикой, вместо того, чтобы пытаться создавать обложки для приложения самостоятельно.

РЕДАКТИРОВАТЬ: Обратите внимание, что не изменит цветСами вкладки вверху TabControl.Чтобы сделать это, вам нужно будет указать его как нарисованный владельцем и обработать событие DrawItem, вынудив вас сделать всю картину самостоятельно.Однако в большинстве случаев в этом нет необходимости.

...