Alpha průhlednost formuláře   zodpovězená otázka

VB.NET, WinForms

Zdravím,

vytvořil jsem si třídu, jež dědí z System.Windows.Forms.Form. Overridnul jsem procedury OnPaint a OnPaintBackground a vykresluji nějaké záležitosti, kde se vyskytuje i png obrázek s vícestupňovou průhledností. Když ale e.Graphics vyčístím barvou System.Drawing.Color.Transparent, plocha Formu zůstane černá. Zkoušel jsem nastavit barvu pozadí a TransparencyKey, pak je ale formulář průhledný pouze na místech, kde je alpha = 0. Jinde je opět vykreslováno přes barvu pozadí. Taktéž, když nastavím obrázek na pozadí s alpha kanálem, vykreslování průhlednosti není korektní. Neexistuje nějaký trik, jak to vyřešit? Jak se řeší semitransparentní formuláře?

Díky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Našel jsem následující:

http://www.codeproject.com/KB/GDI-plus/p...

Zjistil jsem, že se bez Windows API neobejdu, když se snažím udělat formulář s vícestupňovou průhledností. To je škoda, doufal jsem, že by podpora alpha kanálu mohla být stejně dobrá jako je v GDI. Nicméně lepší, než drátem do oka. Doufám, že řešení někomu pomůže.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback