Страница: 1 |
Страница: 1 |
Вопрос: Слои
Добавлено: 24.01.10 21:15
Автор вопроса: Spiritsun
Создаю форму со свойством по верх всех окон, на ней размещаю картинку picturebox. Хочу, чтобы по этой картинка сверху плавало прозрачное изображение (управлять мышкой буду). Как сделать? Пробовал объект FlowLayoutPanel1, эксперементировал с PictureBox1 прозрачными цветами и нифига. Иначе говоря будет 2 объекта PictureBox и нужно, чтобы один всегда отображался над другим и притом имел прозрачность. Идея с еще одной формой, которой можно задать прозрачность отпадает, т.к. минимальный размер формы ограничен.
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #1
Добавлено: 24.01.10 21:36
В каком формате сохранено твое прозрачное изображение?
Номер ответа: 2
Автор ответа:
Spiritsun
Вопросов: 15
Ответов: 44
Профиль | | #2
Добавлено: 24.01.10 21:39
всё равно, дело не в этом, хоть draw нарисую из программы, главное как отобразить одно под другим? Изображение может быть и png и Gif с прозрачным пикселем, а также ручной ввод альфа канала, главное чтобы работало.
Номер ответа: 3
Автор ответа:
Spiritsun
Вопросов: 15
Ответов: 44
Профиль | | #3
Добавлено: 24.01.10 22:03
Дополню, если поместить в PictureBox изображение с прозрачным пикселом, то оно будет прозрачным, но только в пределах PictureBox, тобиж будет виден (сквоь изображение) задний фон PictureBox, а не PictureBox насквозь.
Номер ответа: 4
Автор ответа:
Spiritsun
Вопросов: 15
Ответов: 44
Профиль | | #4
Добавлено: 24.01.10 22:07
..если задаю альфа для заднего фона PictureBox, например, PictureBox1.BackColor = Color.FromArgb(0, 100, 100, 100) или иной, то сам PictureBox всёравно не просвечивает.
Номер ответа: 5
Автор ответа:
Spiritsun
Вопросов: 15
Ответов: 44
Профиль | | #5
Добавлено: 24.01.10 23:24
бьюсь об стену, не получается, вот чтото помогающее есть, может кто разберется? В хелпе раздел "Практическое руководство. Установка степени прозрачности фона элемента управления", ссылка в хелпе ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.ru/dv_fxmclictl/html/32433e63-f4e9-4305-9857-6de3edeb944a.htm
Номер ответа: 6
Автор ответа:
Spiritsun
Вопросов: 15
Ответов: 44
Профиль | | #6
Добавлено: 25.01.10 11:47
ладно, свою проблему решил всеж методом создания новой формы без границ и элементов управления, установил фон формы прозрачным и налепил PictureBox на него с png прозрачным пикселом. Вобщем получился еще один курсор мышки. Но проблема слоёв всеже интересна и не ясна. В конструкторе можно объекты правой клавишей (контекстное меню) перемещать по слоям, а вот как определить в программе в какой позиции Z установлен элемент и как его перемещать по слоям неизвестно.
Номер ответа: 7
Автор ответа:
Spiritsun
Вопросов: 15
Ответов: 44
Профиль | | #7
Добавлено: 25.01.10 14:01
вот, нашел, Control.BringToFront и Control.SendToBack помещяют в начало\конец z уровня. Но как определить текущий уровень z и установить промежуточный вариант пока не ясно. Например если объектов много и я хочу чтобы один вдруг был выше уровнем чем другой, но не выше другого, то тут и встряну.
Номер ответа: 8
Автор ответа:
UnDeAdZak
Вопросов: 80
Ответов: 476
Профиль | | #8
Добавлено: 25.01.10 14:49
Spiritsun Можно сделать по другому, хотя этот способ довольно медленный, и я точно не помню, но суть распишу:
Создаёш 2 обьекта Bitmap(у одного из них размеры такие же как и у пикчебокса, и стоит иоддержка палитры ARGB), и обьект Color, после чего в битмап грузиш картинку, и в цикле перебираеш все его пиксели,записывая цвет в color (.getcolor), после чего в том же цикле рисуеш их на втором битмапе, который после рисуеш на своём пикчебоксе.:P
Номер ответа: 9
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #9
Добавлено: 25.01.10 15:30
А метод DrawImage у объекта Graphics мы не любим?