Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> transparent Label background. WinForms. 
:(
    Опции темы
likegift
Дата 8.6.2009, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: нет
Всего: 3



нашел в инете как сделать Label прозрачным, 
но возникла проблема при перерисовке контрола, когда меняется в нем текст: старый текст накладывается на новый. 
мож кто знает как решить эту проблему? :(
всякие Update, Redraw и им подобные не помогают :(
точнее, сам то он как-то перерисовывается, когда я у него в коде visible меняю, а руками не получается заставить его перерисоваться.
PM MAIL   Вверх
DVariuS
Дата 8.6.2009, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 10.2.2009
Где: Ukraine

Репутация: 5
Всего: 8



Цитата(likegift @  8.6.2009,  13:02 Найти цитируемый пост)
нашел в инете как сделать Label прозрачным 

Фон или текст?

Цитата(likegift @  8.6.2009,  13:02 Найти цитируемый пост)
мож кто знает как решить эту проблему? :(

Давай код - решим.  smile 
PM MAIL   Вверх
likegift
Дата 9.6.2009, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: нет
Всего: 3



Цитата(DVariuS @ 8.6.2009,  19:38)
Фон или текст?

прозрачный  текст?  smile 
фон конечно же )
Цитата(DVariuS @ 8.6.2009,  19:38)

Давай код - решим.  smile




  
Код

 public class XLabel:Label
    {
        public XLabel()
        {
            SetStyle(ControlStyles.SupportsTransparentBackColor, true);
            SetStyle(ControlStyles.OptimizedDoubleBuffer, false);
            BackColor = Color.Transparent;
        }

        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams cp = base.CreateParams;
                cp.ExStyle |= 0x00000020; //WS_EX_TRANSPARENT 
                return cp;
            }
        }

        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
                case 0x0014:
                    return;
            }
            base.WndProc(ref m);
        }
  
     
        protected override void OnPaintBackground(PaintEventArgs pevent)
        {
             
        }

        protected override void OnMove(EventArgs e)
        {
            if (Parent != null)
                Parent.Invalidate(Bounds, true);
        }

    }

PM MAIL   Вверх
DVariuS
Дата 9.6.2009, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 10.2.2009
Где: Ukraine

Репутация: 5
Всего: 8



Цитата(likegift @  9.6.2009,  05:49 Найти цитируемый пост)
прозрачный  текст?   
фон конечно же )

1. Я имел ввиду полупрозрачный текст (хз, для красоты может).
2. Собственно, чего я спросил - у лейбла прозрачный фон устанавливается очень просто:
Код

label1.BackColor = Color.Transparent;

Слышал случаи, когда у некоторых людей этот способ отказывался работать, но... твой код тоже работает! Проверил на другом компе (виртуальном) - работает! Обе системы - Win XP SP3.
У тебя не виста случайно?  smile 
PM MAIL   Вверх
likegift
Дата 10.6.2009, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: нет
Всего: 3



Цитата(DVariuS @ 9.6.2009,  12:11)
 Собственно, чего я спросил - у лейбла прозрачный фон устанавливается очень просто:
Код

label1.BackColor = Color.Transparent;


просто, да не просто, если лэйбл лежит на pictureBox-e. в данном случае, она принимает фон родителя, т.е. формы.

поэтому я нашел код

Цитата(DVariuS @ 9.6.2009,  12:11)

но... твой код тоже работает! 


который у меня тоже работает, но одно НО: при смене текста в таком лэйбле, задний фон не обновляется :(.
поэтому у меня и вопос: как его обновить???
PM MAIL   Вверх
DVariuS
Дата 10.6.2009, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 10.2.2009
Где: Ukraine

Репутация: 5
Всего: 8



Цитата(likegift @  10.6.2009,  18:01 Найти цитируемый пост)
просто, да не просто, если лэйбл лежит на pictureBox-e. в данном случае, она принимает фон родителя, т.е. формы.

Код

label1.Parent = pictureBox1;

PM MAIL   Вверх
likegift
Дата 10.6.2009, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: нет
Всего: 3



Цитата(DVariuS @ 10.6.2009,  21:07)
Цитата(likegift @  10.6.2009,  18:01 Найти цитируемый пост)
просто, да не просто, если лэйбл лежит на pictureBox-e. в данном случае, она принимает фон родителя, т.е. формы.

Код

label1.Parent = pictureBox1;

))) ну это я пробовал в первую очередь. 
может из-за того, что картинка с прозрачным фоном, но лэйбл пропадает и его ваще не видно!
PM MAIL   Вверх
DVariuS
Дата 11.6.2009, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 10.2.2009
Где: Ukraine

Репутация: 5
Всего: 8



likegift, тогда тут два варианта: либо ты что-то недоговариваешь, либо мы наблюдаем вмешательство внеземного разума. Я сколько не пробовал - не удается достигнуть описываемого тобой эффекта  smile  Так что выкладывай проект, либо описывай все в деталях.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0778 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.