Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Как сделать прозрачной png ?


Автор: DenWPF 12.3.2011, 17:02
у меня есть png картинка мяча, нужно 2 такие картинки вывести и сделать их прозрачными, не только с задним фоном, но и друг с другом тоже...

Автор: jonie 12.3.2011, 18:22
http://www.codeproject.com/KB/GDI-plus/perpxalpha_sharp.aspx

Автор: DenWPF 13.3.2011, 00:34
а без использования win api можно?

Автор: -Mikle- 13.3.2011, 09:18
В приведенной ссылке там было немного другое, там саму форму делали с полупрозрачными пикселями (до выхода WPF это было единственный способ).
Если сама картинка у вас с полупрозрачностью, то просто рисуйте их в графикс через graphics.DrawImage, он поддерживает полупрозрачность для PNG.

Автор: DenWPF 13.3.2011, 13:31
Спасибо!!! от я  smile 
переопределял PictureBox и IButtonControl и потом ещё их просто добавлял на форму.


все таки мне нужно сделать елемент который сам себя бы отрисововал и были стандартые свойства от control

я пытался наследоваться от Contol но когда я его добавляю на форму он становить просто черным квадратом...как сделать что бы он был прозрачный ?

Автор: -Mikle- 13.3.2011, 19:25
На вин-формсах, насколько я знаю, в контроле можно только нарисовать бэкграунд родителя, но если под "прозрачным" контролом будет другой контрол, то он не нарисуется, так как не является фоном. Есть еще флаги у контрола, среди которых есть что-то с прозрачностью контрола связано, но сам никогда не использовал и не знаю, поможет ли это. А почему бы не сделать классы представляющие графический элемент? Сколько вам там возможностей надо от стандартного тяжелого контрола? Может имеет смысл все таки выделить в класс и сделать один контрол, который умеет отображать коллекцию этих классов.

Добавлено через 1 минуту и 49 секунд
А еще лучше, делать на WPF, если такая возможность имеется.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)