Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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 мы не любим?

Ответить

Страница: 1 |

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



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