Страница: 1 |
Страница: 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'а, получаешь прозрачный фон.
В .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
Делает. Только что проверил.
Номер ответа: 5
Автор ответа:
Дмитрий Юпатов
Вопросов: 4
Ответов: 457
Web-сайт:
Профиль | | #5
Добавлено: 07.03.10 01:18
А что, нельзя лейблу или пикчербоксу присвоить
Номер ответа: 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-сайт:
Профиль | | #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-сайт:
Профиль | | #12
Добавлено: 09.03.10 15:59
Ну так делай эту "графическую поверхность" контейнером для нужного лейбла. Если это возможно