| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Как сделать градиентную прзрачность |
| Автор: Empirik 24.11.2005, 11:45 |
| Я обскал MSDN и нашел два случая: как поменять прозрачность всей формы целиком, и как сделать куску формы абсолютно прозрачными. Но мне нужно сделать форму которая в некоторых областях была бы прозрачна, а в некоторых нет. Если у кого-то есть примеры как этого добиться то выложите пожалуйста. За ранее большое спасибо |
| Автор: Гость_Папа 24.11.2005, 12:32 | ||
| Приветствую. Это не я придумал, но вроде работает. Делает форму прозрачной, а не элемент на форме.
Здесь в форме установлена картинка, она и отображается при загрузке формы.Сама форма нет. Поэксперементируй. И все получиться. Удачи во всем. |
| Автор: Гость_Папа 24.11.2005, 12:33 |
| Код VB.NET |
| Автор: arilou 24.11.2005, 15:32 |
| Empirik Если я не ошибаюсь, это называется alpha blending. Попробуй в эту сторону покопать. Можно еще посмотреть http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/usingGDIPlus/fillingshapeswithagradientbrush.asp |
| Автор: mr.DUDA 26.11.2005, 18:33 |
| Всё правильно пишет Empirik. Можно сделать всю форму полупрозрачной, тогда все контролы будут с одинаковой прозрачностью, безразлично от того, какой у каждого контрола BackColor-полупрозрачный или нет. Можно для формы задать ключевой цвет, по которому из формы будут "вырезаны" фрагменты. Это касаемо того, чего можно добиться стандартными средствами Теперь о нестандартных. В первую очередь в голову приходит следующее: перекрыть метод OnPaint, в котором отрисовывать всю форму самостоятельно. Других вариантов, вроде бы, нет... |
| Автор: arilou 28.11.2005, 13:31 |
| mr.DUDA Попробуй в XP'шке передвигать иконки на десктопе и ты заметишь, что они становятся "градиентно-прозрачными", т.е. к центру иконка менее прозрачна чем по краям. Именно это я имел ввиду. |
| Автор: mr.DUDA 28.11.2005, 18:24 | ||
Ничего подобного не заметил Может, ты имел в виду Longhorn ? |
| Автор: arilou 29.11.2005, 13:12 | ||
У тебя скины включены? |
| Автор: mr.DUDA 29.11.2005, 15:19 |
| Выключены. Оффтопим ! |
| Автор: Guest 30.11.2005, 12:53 | ||
В общем проблему решил следующим образом: написал новый велосипед. Реализовал GUI при помощи DirectX и остановился на этом. Будет время опробую гредиентные кисти, но не уверен чо они помогут. Всем спасибо |
| Автор: Empirik 30.11.2005, 14:38 | ||||
Этот пост мой |
| Автор: arilou 6.3.2007, 11:41 |
| Elfet, в конструкторе формы надо выставить стили UserPaint, AllPaintingInWmPaint, OptimizedDoubleBuffer - не забыл? |
| Автор: Elfet 6.3.2007, 12:48 | ||
arilou,
Так вот? Но ничего не помогает. Пробовал ещё добавить SetStyle(ControlStyles.SupportsTransparentBackColor, true) - тоже ничего |