Personnaliser l’apparence de l’interface utilisateur en fonction de la plateforme et de l’idiome de l’appareil
Les applications .NET Multiplateforme App UI (.NET MAUI) peuvent avoir leur interface utilisateur personnalisée pour des plateformes et des appareils spécifiques. Cela permet à votre application de :
- Utilisez l’espace le plus efficace. Si vous concevez une application pour qu’elle soit correcte sur un appareil mobile, l’application sera toujours utilisable sur un appareil de bureau, mais il y aura probablement un espace perdu. Vous pouvez personnaliser votre application pour afficher plus de contenu lorsque l’écran dépasse une certaine taille. Par exemple, une application d’achat peut afficher un élément à la fois sur un appareil mobile, mais peut afficher plusieurs éléments sur un appareil de bureau. En outre, en plaçant davantage de contenu à l’écran, vous pouvez réduire la quantité de navigation que les utilisateurs doivent effectuer.
- Tirez parti des fonctionnalités de l’appareil. Certains appareils sont plus susceptibles d’avoir certaines fonctionnalités. Par exemple, les appareils mobiles sont plus susceptibles d’avoir un capteur d’emplacement et une caméra, tandis que les appareils de bureau peuvent ne pas avoir l’un ou l’autre. Votre application peut détecter les fonctionnalités disponibles et activer les contrôles qui les utilisent.
- Optimisez l’entrée. Vous pouvez réorganiser vos éléments d’interface utilisateur pour optimiser les types d’entrée spécifiques. Par exemple, si vous placez des éléments de navigation en bas de l’application, ils seront plus faciles à accéder aux utilisateurs mobiles. Toutefois, les utilisateurs de bureau s’attendent souvent à voir les éléments de navigation vers le haut de l’application.
Lorsque vous optimisez l’interface utilisateur de votre application pour des plateformes et des idiomes d’appareil spécifiques, vous créez une interface utilisateur réactive. Les principales approches de création d’une interface utilisateur réactive dans .NET MAUI impliquent l’utilisation de l’extension OnPlatform
de balisage et de l’extension de OnIdiom
balisage.
Remarque
Il existe une catégorie de déclencheurs, appelés déclencheurs d’état, qui peuvent être utilisés pour personnaliser l’apparence de l’interface utilisateur dans des scénarios spécifiques tels que lorsque l’orientation d’un appareil change. Pour plus d’informations, consultez Le déclencheur d’état.
Personnaliser l’apparence de l’interface utilisateur en fonction de la plateforme
L’extension de balisage OnPlatform
vous permet de personnaliser l’apparence de l’interface utilisateur pour chaque plateforme. Il fournit les mêmes fonctionnalités que les classes et On les OnPlatform<T> classes, mais avec une représentation plus concise.
L’extension OnPlatform
de balisage est prise en charge par la OnPlatformExtension classe, qui définit les propriétés suivantes :
Default
, de typeobject
, que vous définissez sur une valeur par défaut à appliquer aux propriétés qui représentent des plateformes.Android
, de typeobject
, que vous définissez sur une valeur à appliquer sur Android.iOS
, de typeobject
, que vous définissez sur une valeur à appliquer sur iOS.MacCatalyst
, de typeobject
, que vous définissez sur une valeur à appliquer sur Mac Catalyst.Tizen
, de typeobject
, que vous avez défini sur une valeur à appliquer sur la plateforme Tizen.WinUI
, de typeobject
, que vous définissez sur une valeur à appliquer sur WinUI.Converter
, de type IValueConverter, qui peut être défini sur une IValueConverter implémentation.ConverterParameter
, de typeobject
, qui peut être défini sur une valeur à passer à l’implémentation IValueConverter .
Remarque
L’analyseur XAML permet à la OnPlatformExtension classe d’être abrégée en tant que OnPlatform
.
La Default
propriété est la propriété de contenu de OnPlatformExtension. Par conséquent, pour les expressions de balisage XAML exprimées avec accolades, vous pouvez éliminer la Default=
partie de l’expression s’il s’agit du premier argument. Si la Default
propriété n’est pas définie, elle est définie par défaut sur la valeur de la BindableProperty.DefaultValue
propriété, à condition que l’extension de balisage cible un BindableProperty.
Important
L’analyseur XAML s’attend à ce que les valeurs du type correct soient fournies aux propriétés qui consomment l’extension de OnPlatform
balisage. Si la conversion de type est nécessaire, l’extension de OnPlatform
balisage tente de l’effectuer à l’aide des convertisseurs par défaut fournis par .NET MAUI. Toutefois, il existe certaines conversions de type qui ne peuvent pas être effectuées par les convertisseurs par défaut et, dans ces cas, la Converter
propriété doit être définie sur une IValueConverter implémentation.
La page de démonstration OnPlatform montre comment utiliser l’extension de OnPlatform
balisage :
<BoxView Color="{OnPlatform Yellow, iOS=Red, Android=Green}"
WidthRequest="{OnPlatform 250, iOS=200, Android=300}"
HeightRequest="{OnPlatform 250, iOS=200, Android=300}"
HorizontalOptions="Center" />
Dans cet exemple, les trois OnPlatform
expressions utilisent la version abrégée du nom de classe OnPlatformExtension . Les trois OnPlatform
extensions de balisage définissent les propriétés et WidthRequestHeightRequest les xref:Microsoft.Maui.Graphics.Color
propriétés des BoxView valeurs différentes sur iOS et Android. Les extensions de balisage fournissent également des valeurs par défaut pour ces propriétés sur les plateformes qui ne sont pas spécifiées, tout en éliminant la Default=
partie de l’expression.
Personnaliser l’apparence de l’interface utilisateur en fonction de l’idiome de l’appareil
L’extension OnIdiom
de balisage vous permet de personnaliser l’apparence de l’interface utilisateur en fonction de l’idiome de l’appareil sur lequel l’application s’exécute. Elle est prise en charge par la OnIdiomExtension classe, qui définit les propriétés suivantes :
Default
, de typeobject
, que vous définissez sur une valeur par défaut à appliquer aux propriétés qui représentent les idiomes d’appareil.Phone
, de typeobject
, que vous définissez sur une valeur à appliquer sur les téléphones.Tablet
, de typeobject
, que vous définissez sur une valeur à appliquer sur les tablettes.Desktop
, de typeobject
, que vous définissez sur une valeur à appliquer sur les plateformes de bureau.TV
, de typeobject
, que vous définissez sur une valeur à appliquer sur les plateformes tv.Watch
, de typeobject
, que vous définissez sur une valeur à appliquer sur les plateformes Watch.Converter
, de type IValueConverter, qui peut être défini sur une IValueConverter implémentation.ConverterParameter
, de typeobject
, qui peut être défini sur une valeur à passer à l’implémentation IValueConverter .
Remarque
L’analyseur XAML permet à la OnIdiomExtension classe d’être abrégée en tant que OnIdiom
.
La Default
propriété est la propriété de contenu de OnIdiomExtension. Par conséquent, pour les expressions de balisage XAML exprimées avec accolades, vous pouvez éliminer la Default=
partie de l’expression s’il s’agit du premier argument.
Important
L’analyseur XAML s’attend à ce que les valeurs du type correct soient fournies aux propriétés qui consomment l’extension de OnIdiom
balisage. Si la conversion de type est nécessaire, l’extension de OnIdiom
balisage tente de l’effectuer à l’aide des convertisseurs par défaut fournis par .NET MAUI. Toutefois, il existe certaines conversions de type qui ne peuvent pas être effectuées par les convertisseurs par défaut et, dans ces cas, la Converter
propriété doit être définie sur une IValueConverter implémentation.
L’exemple XAML suivant montre comment utiliser l’extension de OnIdiom
balisage :
<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" />
Dans cet exemple, les trois OnIdiom
expressions utilisent la version abrégée du nom de classe OnIdiomExtension . Les trois OnIdiom
extensions de balisage définissent les Color
valeurs , WidthRequestet HeightRequest les propriétés des BoxView différentes valeurs sur le téléphone, la tablette et les idiomes de bureau. Les extensions de balisage fournissent également des valeurs par défaut pour ces propriétés sur les idiomes qui ne sont pas spécifiés, tout en éliminant la Default=
partie de l’expression.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour