Úprava viditelnosti pojmenovaných XAML elementů

Atribut x:Name v XAMLu vytváří pro elementy členské položky třídy, které lze použít pro přístup k ovladacím prvkům z kódu. Narozdíl od WPF však v UWP jsou tyto položky třídy definovány jako private, což znamená, že k nim je možné přistupovat pouze z třídy samotné. Pokud vezmeme v potaz, že z hlediska architektury by to byl špatný nápad, je možné toto chování změnit? Pokračovat ve čtení “Úprava viditelnosti pojmenovaných XAML elementů”

Rychlý tip: Vždy implementujte všechny VisualStates!

Při vývoji UWP aplikace jsem narazil na zajímavou zvláštnost.

XAML VisualStates definují vzhled ovladacích prvků v různých stavech. Přestože obvykle nemusíte rozlišovat všechny z nich, vyplatí se je přesto implementovat (i když jde jen o copy-paste nějakého jiného stavu) nebo narazíte na těžko vysvětlitelné problémy.

V mém případě jsem upravoval vzhled ListViewItem a zapomněl jsem zahrnout implementaci pro stavy PointerOverSelected a PressedSelected. Překvapivě na mém zařízení vše fungovalo jak mělo a použil se jako fallback vzhled stavu Selected. Později jsem však zjistil, že na zařízeních s jinou verzí systému zůstávaly položky seznamu ve stavu PointerOver dokud je neopustil kurzor myši (a i tento přístup dává smysl).

Rozdílné chování mezi verzemi systému je obzvláště zajímavé, protože “problém” se původně neprojevoval ve stabilních buildech Windows 10 Creators Update, ale nyní se zde projevuje také (pravděpodobně vlivem aktualizací).

Nekonzistentní chování Resources v ItemTemplate pro Anniversary Update

Zdá se, že Windows 10 Anniversary Update obsahuje skrytou chybu ve zpracování Resources unvitř ItemTemplate pro položky seznamů. Narazil jsem na ni při práci na UWP aplikaci a popíšu problém samotný spolu s řešením, kterým můžete zajistit, že se vaše aplikace bude chovat správně na všech verzích Windows 10. Pokračovat ve čtení “Nekonzistentní chování Resources v ItemTemplate pro Anniversary Update”

Když jedna průhledná barva nestačí

Nespočetněkrát v životě vývojáře aplikací pro Univerzální platformu Windows narazíme na potřebu použití průhledné barvy a v takovou chvíli se může hodit předdefinovaná barva “Transparent”. Pokud však zapomeneme, že “Transparent” je stále jenom barva, můžeme se se zlou potázat.

Animation of "Transparent" color
Na levé straně je animace z “Transparent” na bílou, napravo animace z “Transparent” na černou

Pokračovat ve čtení “Když jedna průhledná barva nestačí”

Úprava zpětné navigace v UWP aplikaci s MvvmCross

Při vývoji mobilních aplikací můžeme často narazit na potřebu manipulace s historií navigace mezi jednotlivými obrazovkami. Protože framework MvvmCross obsahuje mnoho abstrakcí nad cílovým operačním systémem, neobsahuje přímo zabudovaný mechanismus pro úpravu zpětné navigace. Jak můžeme tento požadavek v MvvmCross implementovat?

Pokračovat ve čtení “Úprava zpětné navigace v UWP aplikaci s MvvmCross”

Device family state trigger pro UWP

Univerzální platforma Windows funguje na mnoha různých typech zařízení (device family). Aby aplikace vypadala skvěle na různých zařízeních, většinou lze použít AdaptiveTrigger, který reaguje na různá rozlišení displeje. Pokud však potřebujeme cílit na konkrétní rodinu zařízení, je možné si pro tento účel vytvořit vlastní state trigger. Pokračovat ve čtení “Device family state trigger pro UWP”

Tip: Roztažení položek seznamu v UWP na šířku

Ovládací prvky ListView a ListBox v univerzální platformě Windows je možné snadno využít pro zobrazení seznamů v uživatelském rozhraní aplikace. Ve výchozí podobě zabírají jednotlivé položky seznamu pouze ten prostor, který skutečně potřebují, což se často nehodí, protože je chceme roztáhnout na celou šířku ovládacího prvku. Jak toho dosáhnout?

Ve výchozí podobě jsou prvky zarovnané vlevo. Jak je roztáhnout?

Pokračovat ve čtení “Tip: Roztažení položek seznamu v UWP na šířku”