Платформа.NET « C# прозрачность контролов, наложенных друг на друга
Здравствуйте.
Приложение Windows Forms, C#. Два контрола, у обоих свойство BackColor: transparent. Один контрол является текстом, другой изображением. Изображение представляет собой png с градиентом, где градиент из прозрачного уходит в белый цвет. Должен получаться красивый эффект, если текста много, он как-бы растворяется. Но вместо этого контрол, в котором находиться png просто заливается фоновым цветом (белым, если transparent).
Вопрос: как все починить? Гугле дает советы по пиксельной отрисовке png изображения, неужели нет ничего проще? (ну там галочку какую-нибудь отметить, как при написании текста на aero glass, или свойство какое приписать)
Вот решение с отрисовкой, там же картинки, сразу все становится ясно: http://www.bobpowell.net/transcontrols.htm
Приложение Windows Forms, C#. Два контрола, у обоих свойство BackColor: transparent. Один контрол является текстом, другой изображением. Изображение представляет собой png с градиентом, где градиент из прозрачного уходит в белый цвет. Должен получаться красивый эффект, если текста много, он как-бы растворяется. Но вместо этого контрол, в котором находиться png просто заливается фоновым цветом (белым, если transparent).
Вопрос: как все починить? Гугле дает советы по пиксельной отрисовке png изображения, неужели нет ничего проще? (ну там галочку какую-нибудь отметить, как при написании текста на aero glass, или свойство какое приписать)
Вот решение с отрисовкой, там же картинки, сразу все становится ясно: http://www.bobpowell.net/transcontrols.htm
1 ответов
Как раз недавно сталкивался с подобным. Отработка прозрачности зависит от того, кто является Parent вашего контрола.
Насколько понимаю сейчас Parent у них одинаковый. Попроуйте добавить label к картинке.
Что-то вроде:
imgControl.Controls.Add(label);
label.bringToFront();
У меня тоже самое: поставил прозрачный label на картинке, но прозрачность здесь не помогает.
Тогда вырезал кусочек картинки, где должен мой текст находиться, и положил его как background of label, Вы так пробовали? В дизайне всё чудесно, в runtime - мой текст виден на цвете подложки формы (т.е. просто на белом, вместо градиента голубого).
К сожалению, так и не решил проблему. Просто написал мой текст (а это был номер версии на заставке приложения) в footer формы.
--
Виктор (Dbrnjh)
<style type="text/css">
h1 {
font: 330%/100% "Lucida Grande";
position: relative;
color: gray;
}
h1 span {
background: url(gradient-white-2.png) repeat-x;
background-position: bottom;
position: absolute;
display: block;
width: 100%;
height: 58px;
}
</style>
<h1><span></span>Градиент</h1>
amway24.ru/test/gradientText/index.htm
так ?