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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прозрачность Picture box)) 
:(
    Опции темы
fire_boy
Дата 14.5.2005, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Не подскажите можно ли средствами .NET сделать Picture Box прозначным(т.е. чтобы содержимое его отображалось, а сквозь бекграунд можно было видеть другие элементы управления, например)...если нет, то скажите как это сделать через апи и встроить в программу на дот нете
Заранее благодарен
PM MAIL   Вверх
Гость_Run-time Error
Дата 15.5.2005, 12:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Наверное через SetLayeredWindowAttributes, посмотри в MSDN smile
  Вверх
arilou
Дата 16.5.2005, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 7
Всего: 61



А зачем такая заморочка?

Ставишь PictureBox, задаешь картинку, а внутрь добавляешь свои контролы. Результат тот же.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
fire_boy
Дата 16.5.2005, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я хочу наложить один Picture Box на другой(одинаковых размеров)...тогда содержимое каждого Picture Box'а будет видно....) Это я так пытаюсь принцип разбиения изображения на слои реализовать
PM MAIL   Вверх
-Mikle-
Дата 17.5.2005, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



Лучше всего такое реализовать вручную. То есть хранить в Bitmap'ах или Image'ах изображение каждого слоя, и выводить их на экран по очереди начиная с нижнего(дальнего) слоя. Потом следующий цикл то же самое и т.д....

Можно создавать регион для PictureBox через АПИ, но это намного дольше будет работать, потому как тебе придется каждый слой попиксельно проверять и на этом основании строить регион, который потом через АПИ присваивать PictureBox'у.

Еще более извращенней, вместо слоев из PicBox, как-нибудь сделать слои из отдельных форм. У форм есть для таких дел свойство TransparencyKey, которое устанавливает "прозрачный" цвет. Все что будет рисоваться или появляться на форме(включая контролы) с пикселами такого цвета, будет абсолютно прозрачным.

С любым из вариантов, готов помочь тебе. smile


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
arilou
Дата 17.5.2005, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 7
Всего: 61



Цитата(Mikle @ 17.5.2005, 06:31)
Лучше всего такое реализовать вручную. То есть хранить в Bitmap'ах или Image'ах изображение каждого слоя, и выводить их на экран по очереди начиная с нижнего(дальнего) слоя. Потом следующий цикл то же самое и т.д....


fire_boy
Это самый лучший и быстрый вариант - использование классов из System.Drawing и System.Drawing.Drawing2D.

Цитата(Mikle @ 17.5.2005, 06:31)
У форм есть для таких дел свойство TransparencyKey, которое устанавливает "прозрачный" цвет.

Я бы не стал таким образом делать - даже одна форма с выставленным TrancparencyKey тормозит. Несколько вообще будут еле-еле крутиться smile

Цитата(Mikle @ 17.5.2005, 06:31)
Можно создавать регион для PictureBox через АПИ, но это намного дольше будет работать

fire_boy
В прицнипе, WinAPI, думается мне, даже не понадобится. Покопай те неймспейсы, которые я указал. Буду вопросы, пиши, мы обязательно поможем.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
fire_boy
Дата 19.5.2005, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата
Лучше всего такое реализовать вручную. То есть хранить в Bitmap'ах или Image'ах изображение каждого слоя, и выводить их на экран по очереди начиная с нижнего(дальнего) слоя. Потом следующий цикл то же самое и т.д....


У меня, в принципе, все вручную и реализовано...просто подумал, что подобная реализация(с прозрачными Picture Box'ами) будет оригинально выглядеть smile
В любом случае - спасибо за советы smile
PM MAIL   Вверх
-Mikle-
Дата 21.5.2005, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



Цитата(fire_boy @ 20.5.2005, 01:41)
В любом случае - спасибо за советы


Приходи еще, не стесняйся smile Здесь тебе всегда помогут, повозможности код напишут и советов надают. smile


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

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

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


 




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


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

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