Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: прозрачные контролы Добавлено: 05.03.10 09:54  

Автор вопроса:  Lim | ICQ: 397722597 
Подскажите, пожалуйста:
В vb6 у label было свойство BackStyle, фон можно было делать прозрачным. В Vb 2008 такого свойства нет, правда, среди вариантов окраски фона есть Web-цвет - "Прозрачный", он присвоение его не делает метку таковой. Как сделать фон метки прозрачным?
Так же, вероятно, решается проблема прозрачности PictureBox.
И, еще, до кучи: Среди Элементов есть контрол Image, но он не подсвечен и неактивен, как его заставить работать?
(VB 2008 на Win XP SP3)

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 s12



Вопросов: 24
Ответов: 363
 Профиль | | #1 Добавлено: 05.03.10 14:07
В ImageTransparenColor выбираешь цвет background'а, получаешь прозрачный фон.
И, еще, до кучи: Среди Элементов есть контрол Image, но он не подсвечен и неактивен, как его заставить работать?

В .NET 2008 нет контрола Image (разве что ручками писать), его заменяет PictureBox.

Ответить

Номер ответа: 2
Автор ответа:
 Lim



ICQ: 397722597 

Вопросов: 1
Ответов: 7
 Профиль | | #2 Добавлено: 05.03.10 14:12
с Image понятно.
При Color.transparent в фоне label или picture отрисовывается основной бэкграунд формы (цвет или картинка), а не реально лежащие под ним объекты!

Ответить

Номер ответа: 3
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #3 Добавлено: 05.03.10 15:27
Там надо переопределить флаги стиля соотвествующие, иначе BackGround будет по любому отрисовываться. Кури мануалы по методу SetStyle...

Ответить

Номер ответа: 4
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #4 Добавлено: 06.03.10 02:54
В vb6 у label было свойство BackStyle, фон можно было делать прозрачным. В Vb 2008 такого свойства нет, правда, среди вариантов окраски фона есть Web-цвет - "Прозрачный", он присвоение его не делает метку таковой. Как сделать фон метки прозрачным?

Делает. Только что проверил.

Ответить

Номер ответа: 5
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #5
Добавлено: 07.03.10 01:18
А что, нельзя лейблу или пикчербоксу присвоить
  1. BackColor=Color.FromArgb(0,0,0,0)
??? Ну собственно, в данном случае последние 3 компоненты не важны - альфа равна нулю,т.е. цвет полностью прозрачный.

Ответить

Номер ответа: 6
Автор ответа:
 Lim



ICQ: 397722597 

Вопросов: 1
Ответов: 7
 Профиль | | #6 Добавлено: 09.03.10 07:12
присвоил BackColor=Color.FromArgb(0,0,0,0), фон прозрачный (то же самое как Color.Transparent), но не так, как нужно:
метка отрисовывает под собой фон окна. т.е. серый, если окно новое или фрагмент картинки, если окно имеет таковую. Но, если под меткой оказывается другая метка или кнопка или любой вообще компонент - тот компонент зарисовывается фрагментом фона формы.
http://imageshost.ru/links/a30385dd30f0519c71f494fb3f8d223d
[url=http://imageshost.ru/][img=http://img9.imageshost.ru/imgs/100309/f81e432c54/2444d.jpg][/url]
http://imageshost.ru/links/1fac32ead552303673c5407e84a2ecd2
[url=http://imageshost.ru/][img=http://img9.imageshost.ru/imgs/100309/29e330919b/f33e2.png][/url]

Ответить

Номер ответа: 7
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #7 Добавлено: 09.03.10 08:50
Так как ты хочешь сделать, не получится, из-за того как работает так называемая "прозрачность" в Windows Forms.
Вместо честной прозрачности там довольно примитивный механизм - при перерисовке контрола сначала на нем отрисовывается контейнер, затем поверх - сам контрол

Ответить

Номер ответа: 8
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #8 Добавлено: 09.03.10 08:51
Хочешь настоящую прозрачность, нужно рисовать через GDI, или же использовать более совершенный инструменты, к примеру, WPF, где есть частная прозрачность

Ответить

Номер ответа: 9
Автор ответа:
 Lim



ICQ: 397722597 

Вопросов: 1
Ответов: 7
 Профиль | | #9 Добавлено: 09.03.10 09:33
Обидно. В vb6 свойство backstyle позволяло image или label видеть любой объект под ним.
basic становится совсем не basic...

Ответить

Номер ответа: 10
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #10
Добавлено: 09.03.10 12:49
Lim, ты часом не хочешь сделать текст рядом с курсором? Ну или курсор с текстовым полем? Если да, вот вариант: http://bit.pirit.info/forum/viewtopic.php?t=13287
В итоге будем иметь курсор на основе картинки и немного в стороне от него (от стрелки, перекрестья, ладошки...) текстовое поле с нужным тебе текстом.

Ответить

Номер ответа: 11
Автор ответа:
 Lim



ICQ: 397722597 

Вопросов: 1
Ответов: 7
 Профиль | | #11 Добавлено: 09.03.10 13:01
за ссылку спасибо.
Нет, мне сейчас еще не нужно ничего конкретного. Предпочитал в vb6 делать кнопки произвольной формы из image, вставляя в него иконку,а в случае с vb2008 можно было бы сделать из picture или label, но придется каждый раз думать, чтобы фон формы совпадал с фоном того контрола, поверх которого будет кнопка... А на графической поверхности теперь и вовсе только квадратные кнопки можно будет поместить. :( Хлопотно, в общем.

Ответить

Номер ответа: 12
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #12
Добавлено: 09.03.10 15:59
А на графической поверхности теперь и вовсе только квадратные кнопки можно будет поместить.

Ну так делай эту "графическую поверхность" контейнером для нужного лейбла. Если это возможно

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам