Kezdőlap > Windows Phone 8 > Windows Phone System Tray – Az a bizonyos fehér szín

Windows Phone System Tray – Az a bizonyos fehér szín

2013. április 5. péntek Hozzászólás Go to comments

Szóval itt van ez a gyönyörű jószág: a Windows Phone. A WP8 sokat fejlődött elődjéhez képest, hisz itt már nagyszerű (haha) WinRT fut a mélyén. Igazából ezzel nincs is itt különösebb baj, igaz, hogy sok minden duplikálva van az API-ban, de hát ezen még az ember túllendül. Kezdek egy szabadidős projektemnek a végére érni, és ilyenkor jön az ellenőrzés. Ugyanis viszonylag szigorú feltételeknek kell megfelelni ahhoz, hogy az alkalmazás bekerüljön a Microsoft Store-ba. (Igaz, ha valami gagyit tölt fel az ember akkor az átmegy mert sok mindent nem lehet elrontani.) El is kezdtem tesztelni az alkalmazást. Első teszt az volt, hogy hogy is néz ki fehér háttérrel az alkalmazás, mert ugye ha elütnek a színek vagy kín van vele, akkor visszadobják az egészet. Na már most erről azt kell tudni, hogy ha a fejlesztő nem csak a beépített színeket és sablonokat akarja használni mert létrehozna valami egyedit akkor cseszheti. Na de sebaj, ez végül is egy követelmény, és teljesen jogos is, max a létjogosultságával lehet vitatkozni – szerintem.

De tértjünk a tárgyra!

Elkezdi az ember stílusozni az alkalmazást. Minden textblocknak vezérlőnek stílust készít, leszármaztatja stb. Eljut két fontos vezérlőig amivel megint csak baja lesz. Az egyik az ApplicationBar ami ugye nem silverlight kontrol (héé hát nem WinRT van?!), ezért se binding, se stílus, se routed eventje nincs. Írd be manuálisan amit akarsz, minden page-re külön. Jó-jó megcsinálom, bár a style-t pont erre találták ki, de ha nem hát nem. Sebaj beírtam, működik.

Jön a system tray. A system tray az alkalmazásunk felső résszén található, itt jelenik meg az óra, a hálózat, akku töltöttség és egyéb adatok. Hát ez se köthető nagyon, bár én megcsináltam, hogy legalább a ProcessIndicator szövege köthető legyen, mert hát mégis csak MVVM-et használ az ember. De jöttek a stílusok. Na mondom jó, hát úgy is csak néhány page-n kell a system tray-t használni. Be is írom neki, hogy mindenkép legyen fekete, és az előtér színe fehér.

Íme:

shell:SystemTray.IsVisible="True" shell:SystemTray.Opacity="0.7" shell:SystemTray.BackgroundColor="Black" shell:SystemTray.ForegroundColor="White"

Elindítom az alkalmazást és mit látnak szemeim:

image

Mi a szösz? Hogy-hogy fekete? De hát oda van írva, hogy White!

Na jó akkor teszteljünk! Kap egy sárga színt!

shell:SystemTray.IsVisible="True" shell:SystemTray.Opacity="0.7" shell:SystemTray.BackgroundColor="Black" shell:SystemTray.ForegroundColor="Yellow"

Vajon működni fog-e? Dobpergés! Működik!

image

Akkor, miért nem jó a fehér szín?

Próbáljuk meg, átszínezni kódból fehérre…. Bár az ember ilyenkor a fejét fogja, hogy akkor megint code-behind, vagy egyszerű dologhoz is hihetetlen workaroundok kellenek a ViewModel-be. Na de Code-behind!

SystemTray.SetForegroundColor(this, System.Windows.Media.Colors.White);

Láss csodát működik:

image

Tényleg megkérdezném a fejlesztőit, hogy ugyan mi baj van a fehér színnel, ha markup-ban akarom definiálni? Ha elakarom rontani fekete témával is eltudom…

Reklámok
Kategóriák:Windows Phone 8 Címke:
  1. 2013. április 5. péntek - 16:54

    A vicc az, hogy igazából kódból se kellene működnie, le is van dokumentálva:

    http://msdn.microsoft.com/en-us/library/microsoft.phone.shell.systemtray.setforegroundcolor.aspx – Remarks

    Lehet, hogy fogtál egy bugot 🙂

    • 2013. április 5. péntek - 17:58

      háh és tényleg ott van:
      You cannot set the foreground to white. Use a color close to white instead

      Am közben addig csiholtam, míg rájöttem, hogy miért működik, illetve, hogy a fentebbi kód, hogy nem. Ugyanis, ha a markupban nincs valamilyen szín meghatározva a számára, hiába állítom be kódból akkor marad fekete. Tehát a markupban is lennie kell egy színnek, meg ha kódból határozom meg akkor fog megjelenni.

      Mi gányolás lehet ott a háttérben? 🙂

  2. surex
    2013. április 17. szerda - 09:52

    És a SystemTray-ben lévő ProgressIndicator színét sem lehet megváltoztatni… Miért is nem? Alapból mindig az Accent colort kapja meg! Vajon ezt miért tiltják?

  1. No trackbacks yet.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

%d blogger ezt kedveli: