Přizpůsobení vzhledu uživatelského rozhraní na základě idiomu platformy a zařízení
Aplikace .NET Multi-Platform App UI (.NET MAUI) můžou mít přizpůsobené uživatelské rozhraní pro konkrétní platformy a zařízení. To vaší aplikaci umožňuje:
- Využijte prostor co nejefektivnějším. Pokud navrhnete aplikaci tak, aby vypadala dobře na mobilním zařízení, bude aplikace stále použitelná na stolním zařízení, ale pravděpodobně bude nějaký nedostatek místa. Aplikaci můžete přizpůsobit tak, aby zobrazovala více obsahu, když je obrazovka nad určitou velikostí. Například nákupní aplikace může na mobilním zařízení zobrazovat jednu položku najednou, ale může zobrazovat více položek na stolním zařízení. Kromě toho můžete umístěním dalšího obsahu na obrazovku snížit množství navigace, kterou uživatelé potřebují provést.
- Využijte možnosti zařízení. U některých zařízení je větší pravděpodobnost, že budou mít určité funkce. Například mobilní zařízení mají pravděpodobně senzor polohy a kameru, zatímco ani desktopová zařízení nemusí mít. Vaše aplikace dokáže zjistit, které funkce jsou k dispozici, a povolit ovládací prvky, které je používají.
- Optimalizujte vstup. Prvky uživatelského rozhraní můžete změnit tak, aby se optimalizovaly pro konkrétní vstupní typy. Pokud například umístíte navigační prvky do dolní části aplikace, budou pro mobilní uživatele snadnější přístup. Uživatelé plochy ale často očekávají, že v horní části aplikace uvidí navigační prvky.
Když optimalizujete uživatelské rozhraní aplikace pro konkrétní platformy a idiomy zařízení, vytváříte responzivní uživatelské rozhraní. Primární přístupy k vytvoření responzivního uživatelského rozhraní v rozhraní .NET MAUI zahrnují použití OnPlatform
rozšíření značek a OnIdiom
rozšíření značek.
Poznámka:
Existuje kategorie triggerů, které se označují jako triggery stavu, které lze použít k přizpůsobení vzhledu uživatelského rozhraní v konkrétních scénářích, jako je například při změně orientace zařízení. Další informace najdete v tématu Aktivační událost stavu.
Přizpůsobení vzhledu uživatelského rozhraní na základě platformy
Rozšíření značek OnPlatform
umožňuje přizpůsobit vzhled uživatelského rozhraní podle platformy. Poskytuje stejné funkce jako OnPlatform<T> třídy a On poskytuje stručnější reprezentaci.
Rozšíření OnPlatform
značek je podporováno OnPlatformExtension třídou, která definuje následující vlastnosti:
Default
, typuobject
, které jste nastavili na výchozí hodnotu, která se má použít u vlastností představujících platformy.Android
, typuobject
, který jste nastavili na hodnotu, která se má použít v Androidu.iOS
, typuobject
, který jste nastavili na hodnotu, která se má použít v iOSu.MacCatalyst
, typuobject
, který nastavíte na hodnotu, která má být použita na Mac Catalyst.Tizen
, typuobject
, které nastavíte na hodnotu, která se použije na platformě Tizen.WinUI
, typuobject
, který jste nastavili na hodnotu, která se má použít pro WinUI.Converter
, typu IValueConverter, které lze nastavit na implementaci IValueConverter .ConverterParameter
, typuobject
, který lze nastavit na hodnotu, která se má předat implementaci IValueConverter .
Poznámka:
Analyzátor XAML umožňuje OnPlatformExtension , aby třída byla zkrácena jako OnPlatform
.
Vlastnost Default
je vlastnost OnPlatformExtensionobsahu . Proto u výrazů značek XAML vyjádřených složenými závorkami můžete část výrazu eliminovat Default=
, pokud se jedná o první argument. Default
Pokud vlastnost není nastavená, nastaví se jako výchozí BindableProperty.DefaultValue
hodnota vlastnosti za předpokladu, že rozšíření značek cílí na BindablePropertyhodnotu .
Důležité
Analyzátor XAML očekává, že hodnoty správného typu budou poskytnuty vlastnostem využívajícím OnPlatform
rozšíření značek. V případě potřeby OnPlatform
převodu typů se rozšíření značek pokusí provést pomocí výchozích převaděčů poskytovaných rozhraním .NET MAUI. Existují však některé převody typů, které nelze provést ve výchozím převaděči a v těchto případech Converter
by vlastnost měla být nastavena na implementaci IValueConverter .
Na stránce OnPlatform Demo se dozvíte, jak použít OnPlatform
rozšíření značek:
<BoxView Color="{OnPlatform Yellow, iOS=Red, Android=Green}"
WidthRequest="{OnPlatform 250, iOS=200, Android=300}"
HeightRequest="{OnPlatform 250, iOS=200, Android=300}"
HorizontalOptions="Center" />
V tomto příkladu používají všechny tři OnPlatform
výrazy zkrácenou verzi OnPlatformExtension názvu třídy. OnPlatform
Tři rozšíření značek nastavily xref:Microsoft.Maui.Graphics.Color
WidthRequest, a HeightRequest vlastnosti BoxView na různé hodnoty v iOSu a Androidu. Rozšíření značek také poskytují výchozí hodnoty pro tyto vlastnosti na platformách, které nejsou zadané, a zároveň eliminují Default=
část výrazu.
Přizpůsobení vzhledu uživatelského rozhraní na základě idiomu zařízení
Rozšíření OnIdiom
značek umožňuje přizpůsobit vzhled uživatelského rozhraní na základě iddiomu zařízení, na kterém aplikace běží. Podporuje ji OnIdiomExtension třída, která definuje následující vlastnosti:
Default
, typuobject
, které jste nastavili na výchozí hodnotu, která se má použít u vlastností, které představují iddiomy zařízení.Phone
, typuobject
, který jste nastavili na hodnotu, která se má použít na telefonech.Tablet
, typuobject
, který jste nastavili na hodnotu, která se má použít na tabletech.Desktop
, typuobject
, který nastavíte na hodnotu, která se použije na desktopových platformách.TV
, typuobject
, který jste nastavili na hodnotu, která se má použít na televizních platformách.Watch
, typuobject
, který nastavíte na hodnotu, která se použije na platformách Watch.Converter
, typu IValueConverter, které lze nastavit na implementaci IValueConverter .ConverterParameter
, typuobject
, který lze nastavit na hodnotu, která se má předat implementaci IValueConverter .
Poznámka:
Analyzátor XAML umožňuje OnIdiomExtension , aby třída byla zkrácena jako OnIdiom
.
Vlastnost Default
je vlastnost OnIdiomExtensionobsahu . Proto u výrazů značek XAML vyjádřených složenými závorkami můžete část výrazu eliminovat Default=
, pokud se jedná o první argument.
Důležité
Analyzátor XAML očekává, že hodnoty správného typu budou poskytnuty vlastnostem využívajícím OnIdiom
rozšíření značek. V případě potřeby OnIdiom
převodu typů se rozšíření značek pokusí provést pomocí výchozích převaděčů poskytovaných rozhraním .NET MAUI. Existují však některé převody typů, které nelze provést ve výchozím převaděči a v těchto případech Converter
by vlastnost měla být nastavena na implementaci IValueConverter .
Následující příklad XAML ukazuje, jak použít OnIdiom
rozšíření značek:
<BoxView Color="{OnIdiom Yellow, Phone=Red, Tablet=Green, Desktop=Blue}"
WidthRequest="{OnIdiom 100, Phone=200, Tablet=300, Desktop=400}"
HeightRequest="{OnIdiom 100, Phone=200, Tablet=300, Desktop=400}"
HorizontalOptions="Center" />
V tomto příkladu používají všechny tři OnIdiom
výrazy zkrácenou verzi OnIdiomExtension názvu třídy. Tři OnIdiom
rozšíření značek nastavují Color
, WidthRequesta HeightRequest vlastnosti BoxView různých hodnot na telefonu, tabletu a desktopové idiomy. Rozšíření značek také poskytují výchozí hodnoty pro tyto vlastnosti na idioms, které nejsou zadány, a současně eliminují Default=
část výrazu.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro