2009-08-11 3 views
0

Я хотел бы поместить LinkLabel с прозрачным фоном над TabControl. Элемент управления вкладкой не имеет закладки.Прозрачный LinkLabel над TabControl

Как нельзя добавить элементы управления, отличные от вкладок, в TabControl, что я делаю это, добавьте LinkLabel в элемент управления, который содержит TabCOntrol, а затем используйте BringToFront в LinkLabel. Это отображает его над TabControl.

Проблема: LinkLabel отображается как прозрачный (свойство BackColor), но вместо того, чтобы отображать цвет TabControl в качестве фона, он показывает цвет фона его родителя, элемент управления, который также содержит TabControl. Из того, что я понимаю, это нормальное поведение, поскольку прозрачный BackColor означает, что он просто примет цвет родителя.

Вопрос: Есть ли какие-либо решения для отображения моей LinkLabel с цветом фона TabControl?

Благодаря

+0

Редактировать: Мне было предложено использовать класс TabControlRenderer для визуализации фона LinkLabel, который также работает. – David

ответ

1

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

+0

Спасибо за ваш ответ, но это уже то, что я делаю (установка его из кода), и он не работает :( Очевидно, BackColor = Transparent означает, что он будет иметь цвет фона родителя. – David

+0

Да, установка BackColor на Прозрачный, на самом деле означает использование BackColor для родителя. Я думаю, что музыка, которую пыталась сказать, была установлена ​​BackColor (в коде во время выполнения) на tabcontrol.BackColor. – NascarEd

+0

Что сказал Эд. :) – MusiGenesis

0

Спасибо за ваши ответы. Теперь я понимаю, что вы имели в виду.

Использование вкладки BackColor элемента управления не будет работать, потому что это свойство всегда возвращает ColorSystemColors.Control, который является серым. Однако при использовании визуальных стилей (например, темы по умолчанию XP) задний цвет TabControl является белым. Я не могу использовать белый, поскольку элемент управления вкладки не является чисто белым, но градиент белый ...

+0

Просмотрите все доступные системные цвета, и вы, вероятно, найдете тот, который вам нужен. – MusiGenesis

+0

С моей точки зрения, это не системный цвет, но он определен в файле uxtheme.dll. Возможно, решение было бы использовать собственные методы из этой DLL, чтобы нарисовать фон моего лейбла ... слишком много беспокоиться. В итоге я использовал прозрачную метку, которую я нашел там, и изменил ее, чтобы она выглядела как LinkLabel. http://www.codeproject.com/KB/miscctrl/SimpleLine.aspx Спасибо за вашу помощь в любом случае :) – David

Смежные вопросы