Transparent wcale nie znaczy przezroczysty

Wg Microsoftu „transparent” nie znaczy wcale „przezroczysty”. Ci którzy wymyślili .Net Compact Framework (czyli tę okrojoną wersję dla PDA i komórek) uważali, że przezroczystość oznacza ustawienie takiego samego koloru tła jaki ma element nadrzędny. No i pewnie w 90% prostych formularzy i kontrolek się to sprawdza.

Ale nie trzeba się zbytnio wysilić, aby zobaczyć, że przy tworzeniu pierwszej bardziej zaawansowanej graficznie aplikacji na Windows Mobile, takie rozumowanie będzie błędne. Niech np. tłem aplikacji będzie jakiś obrazek, albo dla ułatwienia jakiś mały gradient. Oto co na wyjdzie:

Windows Mobile Emulator - przezroczyte tło w Labelach
Windows Mobile Emulator - przezroczyte tło w Labelach

Aplikacji wygląda tragicznie, bo każdy Label, PictureBox itp. ma tło jednostajne, a nie przezroczyste. Ustawienia BackgroundColor na Web / Transparent nic nie da. Trzeba napisać od początku nowego Label’a, Form’a i PictureBox’a.

Pomóc mogą dwie strony:

  1. //blogs.commentor.dk/post/Transparent-Controls-in-NETCF.aspx
  2. //www.codeplex.com/alphamobilecontrols

Na obrazie powyżej „transparentLabel1” jest właśnie takim przerobionym Labelem (wg pierwszego linka). Jak można się domyśleć, teraz trzeba przerobić PictureBox, aby te strzałki po prawej i lewej ekrnu też wykorzystywały przezroczystość. Ale to jutro… Dzisiaj już nie mogę patrzeć na to całe MS Visual Studio…

One Reply to “Transparent wcale nie znaczy przezroczysty”

Zostaw odpowiedź

This site uses Akismet to reduce spam. Learn how your comment data is processed.