Ú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í).