Dobrý den,
potřeboval bych poradit, jak mám udělat průhledný obrázek.
Pomocí Color.Transparent se mi sice PictureBox udělá transparentní, ale zobrazí barvu (obrázek) co je na formuláři. Ale já potřebuji, aby se zobrazil obrázek (část obrázku), který je pod tímto obrázkem.
Díky Petr
Fórum › .NET
Pruhlednost
To wetty : Teď ti teda vůbec nerozumím. Možná zkus PNG s alpha kanálem (průhledností).
Mám GIF s průhledností. Tesnu PNG
Pokusím se vysvětlit jinak. Pomocí Labelu.
Založím nový formulář, na který vložím dva Labely. U obou dám AutoSize=false; Prvnímu změním BackColor=Yellow a zvětším ho. Druhému nastavím BackColor=Transparent a posunu ho přes ten první Label. No a ten transparentní label má stejné pozadí jako formulář a není žlutej ačkoli je ten žlutej Label pod ním. A já ale chci, aby část co je přes ten žlutý label byla žlutá a část co je přes formulář byla šedivá jako formulář.
To wetty : Tak to nelze, barva Transparent neznamená, že bude vidět to, co je pod prvkem, ale že převezme barvu containeru. Snad to jde jen tím průhledným PNG, jestli si dobře vzpomínám.
Dík, ale bohužel ani PNG. :-(
Pokud tato funkce funguje, tak jak funguje, jak mám tedy udělat, když potřebuji ve svém programu mít na ploše formuláře několik posunovatelných objektů, které se mohou překrývat. A nechci je mít čtvercové.
To wetty : Máš pravdu, spletl jsem se. Nejspíše to funguje jen na pozadí formuláře.
Nechceš to zkusit ve WPF? Tam se takovéhle hračičky s grafikou dělají celkem příjemně.
Transparent funguje opravdu pouze ve vztahu Controlu a jeho parent kontejneru
(takze dalsi kontrol ve stejnem kontejneru ktery je "vespod" nemusi vubec byt videt)
Pokud chces dosahnout efektu, aby se ruzne prekryvaly jednotlive Controly je treba jim nastavit vlastnost Region (to se da naprogramovat i napriklad podle alfa kanalu... *)
Nevyhoda bohuzel je, ze kazda Controla se v takovem pripade vykresluje sama a na prekryvech nelze pouzit antialiasing - protoze se kazda cast prekryvu kresli samostatne - na jine Controle. Proto je to vhodne pouze na pravouhle, nebo alespon "ostre" tvary..
*)nactu si objekt Bitmap; vytvorim objekt GraphicsPath;projdu pixely Bitmap.GetPixel(x,y) a kazdy "nepruhledny" pixel pridam do GraphicsPath objektu a nakonec Controle nastavim Region vytvoreny konstruktorem, kde jako parametr pouziji prave vytvoreny GraphicsPath. Ale tech konkretnich postupu je vice.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Průhlednost — založil hajnis
Pruhlednost — založil BigBear
Průhlednost v IE — založil Pixtr
Průhlednost okna — založil Marek Kadlčík
PHP GD a průhlednost — založil Míša
Moderátoři diskuze