.NET MAUI dispose de quatre classes de mise en page pour vous aider Ă organiser lâinterface utilisateur de votre application. Regardons-les !
Salut!! đââ Câest un plaisir pour moi de vous avoir ici! đ Lors du dĂ©veloppement dâune interface utilisateur pour une application, nous avons besoin dâun « moule » ou dâun « modĂšle » pour nous aider Ă organiser les composants que cette interface utilisateur aura. Pour le faire dans .NET MAUI, nous avons des mises en page, et dans cet article nous allons apprendre les diffĂ©rentes mises en page disponibles et comment les utiliser de maniĂšre trĂšs simple !
Quâest-ce quâune mise en page ?
Les mises en page vous permettent dâorganiser/regrouper les contrĂŽles dâune interface utilisateur de maniĂšre ordonnĂ©e. Il existe diffĂ©rents types de dispositions qui ont Ă©tabli la maniĂšre dont chacune organise les contrĂŽles qui lui sont affectĂ©s. Par consĂ©quent, il est important de connaĂźtre chacun dâentre eux pour savoir comment choisir correctement. Vous pouvez utiliser une mise en page ou un mĂ©lange de mises en page.
Types de mise en page existants dans .NET MAUI
Dans .NET MAUI, nous avons quatre types de classes de mise en page, que vous pouvez voir dans lâimage ci-dessous. Ensuite, nous allons regarder de plus prĂšs chaque type de mise en page.
StackLayout
Le StackLayout organise les vues enfants dans une pile unidimensionnelle verticalement ou horizontalement. Si la taille dâun champ nâest pas spĂ©cifiĂ©e, il sâagrandira pour remplir lâespace disponible (largeur ou hauteur) selon lâorientation dĂ©finie (verticale ou horizontale). Cette disposition est dĂ©finie par les propriĂ©tĂ©s suivantes :
Orientation de la mise en page de la pile
Ceci indique lâorientation dans laquelle les champs contenus dans cette disposition seront affichĂ©s. Cette orientation peut ĂȘtre verticale ou horizontale, et si vous ne la spĂ©cifiez pas, elle prendra lâorientation verticale comme valeur par dĂ©faut.
Le rĂ©sultat de la dĂ©finition de lâorientation horizontale ou verticale est un exemple comme lâimage suivante (vous avez donc une idĂ©e) :
Mais nous avons Ă©galement deux sous-types de StackLayout qui nous aident Ă concevoir directement lâorganisation de nos contrĂŽles. Voyons voir:
HorizontalStackLayout : Il organise les vues enfant dans une pile horizontale unidimensionnelle.
<HorizontalStackLayout >
<Label Text="Give me your name:" />
<Button BackgroundColor="Pink" Text="Enter"/>
</HorizontalStackLayout>
Disposition de la pile verticale : Il organise les vues enfant dans une pile verticale unidimensionnelle.
<VerticalStackLayout>
<Label Text="Give me your name:" />
<Button BackgroundColor="Pink" Text="Enter"/>
</VerticalStackLayout>
â Les performances sont meilleures si vous choisissez lâune de ces deux derniĂšres options (clairement celle qui correspond le mieux Ă vos besoins) plutĂŽt que de choisir le StackLayout et dâajouter lâorientation.
Espacement StackLayout
Cela indique la quantitĂ© dâespace occupĂ©e par chaque vue enfant. Cette propriĂ©tĂ© reçoit une valeur de type double et a une valeur par dĂ©faut de zĂ©ro (non obligatoire).
Voyons maintenant son implémentation dans le code :
<StackLayout Orientation="Horizontal" Spacing="6">
<Label Text="Give me your name:" />
<Button BackgroundColor="Pink" Text="Enter"/>
</StackLayout>
AbsoluteLayout
Vous pouvez positionner des Ă©lĂ©ments Ă lâaide de valeurs explicites ou de valeurs relatives Ă la taille de la mise en page. La position est spĂ©cifiĂ©e comme le coin supĂ©rieur gauche de lâĂ©lĂ©ment enfant par rapport au coin supĂ©rieur gauche de AbsoluteLayout. Cette disposition est idĂ©ale Ă utiliser lorsque vous souhaitez crĂ©er un effet de superposition sur vos commandes.
Cette disposition est définie par les propriétés suivantes :
AbsoluteLayout.LayoutBound
Il reprĂ©sente la position et la taille dâun enfant. Il a (0,0,AutoSize,AutoSize) comme valeur par dĂ©faut. Les valeurs quâil reçoit peuvent ĂȘtre les suivantes :
- Proportionnel: Indique une relation entre une disposition et une vue.
<Button AbsoluteLayout.LayoutBounds=".30,.05,.23,.1" AbsoluteLayout.LayoutFlags="All" BackgroundColor="Pink" Text="Button Test" />
- Absolus : DĂ©finit les valeurs avec une position fixe. Cela nâobtient que la position, quâelle tienne ou non sur lâĂ©cran.
<Button AbsoluteLayout.LayoutBounds="105,100,150,10" Text="Hello!" BackgroundColor="Pink" />
AbsoluteLayout.LayoutFlagsAbsoluteLayout.LayoutFlags
Cela indique comment les commandes seront interprĂ©tĂ©es Ă lâĂ©cran. Certaines des valeurs quâil reçoit sont les suivantes :
- XProportionnel â YProportionnel : Indique que la valeur de x et y, respectivement, sera interprĂ©tĂ©e comme proportionnelle, et les autres comme absolues.
- Proportionnel Ă la hauteur â Proportionnel Ă la largeur : Obtient la hauteur ou la largeur, respectivement, en tant que disposition proportionnelle. Les Ă©lĂ©ments restants sont des absolus.
- PositionProportionnelle : Obtient X et Y comme mise en page proportionnelle. Les éléments restants sont des absolus.
- Tout: Prenez toutes les valeurs comme proportionnelles.
Enfin, vous pouvez avoir un résultat comme celui-ci :
<AbsoluteLayout>
<BoxView Color="Pink" AbsoluteLayout.LayoutBounds="0.5,0,100,25" AbsoluteLayout.LayoutFlags="PositionProportional" />
<BoxView Color="Green" AbsoluteLayout.LayoutBounds="0,0.5,25,100" AbsoluteLayout.LayoutFlags="PositionProportional" />
<BoxView Color="Red" AbsoluteLayout.LayoutBounds="1,0.5,25,100" AbsoluteLayout.LayoutFlags="PositionProportional" />
<BoxView Color="Blue" AbsoluteLayout.LayoutBounds="0.5,1,100,25" AbsoluteLayout.LayoutFlags="PositionProportional" />
<Label Text="Centered text" AbsoluteLayout.LayoutBounds="0.5,0.5,110,25" AbsoluteLayout.LayoutFlags="PositionProportional" />
</AbsoluteLayout>
â Exemple tirĂ© du documents officiels.
Grille
La grille nous aide Ă organiser les Ă©lĂ©ments en lignes et en colonnes, qui doivent ĂȘtre dĂ©finies en fonction des besoins de lâinterface utilisateur. Celles-ci peuvent ĂȘtre de taille proportionnelle ou absolue.
Explorons maintenant la structure dâimplĂ©mentation de Grid.
Lignes et colonnes
Colonnes: Dans la propriĂ©tĂ© ColumnDefinitions, vous pouvez ajouter autant de colonnes que nĂ©cessaire. Il vous suffit de les sĂ©parer par des virgules et dâattribuer la taille correspondante, comme dans lâexemple suivant.
<Grid ColumnDefinitions="10,*,auto">
<!-- your code here-->
</Grid>
Lignes: Dans la propriĂ©tĂ© RowDefinitions, vous pouvez ajouter autant de lignes que nĂ©cessaire. Il vous suffit de les sĂ©parer par des virgules et dâaffecter la taille correspondante comme dans lâexemple suivant.
<Grid RowDefinitions="auto,*">
<!-- your code here-->
</Grid>
Et enfin vous obtiendrez les résultats suivants :
<Grid ColumnDefinitions="10,*,auto" RowDefinitions="auto,*">
<!-- your code here-->
</Grid>
Pour affecter un contrĂŽle Ă une ligne et une colonne spĂ©cifique, il vous suffit de faire ce que je montre dans lâimage suivante :
Exemple de code :
<Grid ColumnDefinitions="10,*,auto" RowDefinitions="auto,*">
<Button Grid.Row="0" Grid.Column="0" Text="Hello how are you!?" />
</Grid>
Taille des lignes et des colonnes
Il est important de savoir comment nous allons définir la taille des lignes et des colonnes. Nous avons trois options, que je décris ci-dessous :
- Absolu: Indique avec une taille spécifique que prendront les lignes et/ou les colonnes. Exemple:
<RowDefinition Height="10" />
- Proportionnel :
<RowDefinition Height="*" />
- Indique la taille quâaura une ligne et/ou une colonne au moyen de lâespace restant du dispositif entre dâautres valeurs proportionnelles du mĂȘme type (ligne ou colonne). Exemple: Auto:
<RowDefinition Height="Auto" />
Ajuste la taille de ses lignes ou colonnes en fonction de la taille de ses enfants. Exemple: Vous pouvez voir plus dâinformations sur Gridici
.
Plusieurs cases de mĂȘme taille, disposĂ©es en trois colonnes et six rangĂ©es ; il manque une case en bas Ă droite
FlexLayout est similaire Ă StackLayout : il affiche les enfants horizontalement ou verticalement dans une pile. Mais il peut Ă©galement envelopper ses enfants sâil y a trop dâenfants pour tenir dans une seule ligne ou colonne, et il permet Ă©galement un contrĂŽle plus granulaire de la mise en page, y compris la taille, lâorientation et lâalignement de ses Ă©lĂ©ments enfants.
Cette disposition fournit un dimensionnement proportionnel pour les contrĂŽles quâils contiennent en organisant les Ă©lĂ©ments dans un rapport basĂ© sur les dimensions de lâĂ©cran et entre les Ă©lĂ©ments sur lâĂ©cran.
Cette disposition est définie par les propriétés suivantes :
Direction
- Il est chargĂ© dâindiquer la direction que vont prendre les Ă©lĂ©ments contenus dans la mise en page. Parmi les valeurs prises en charge figurent les suivantes : Colonne:
- Il est chargĂ© dâorganiser les enfants du layout de haut en bas en les empilant verticalement. ColonneInverse :
- Il est chargĂ© dâorganiser les enfants du layout de bas en haut en les empilant verticalement. Ligne:
- Il est chargĂ© dâorganiser les enfants du layout de gauche Ă droite en les empilant horizontalement. (Ceci est la valeur par dĂ©fault.) Inverser la ligne :
Il est chargĂ© dâorganiser les enfants du layout de droite Ă gauche en les empilant horizontalement.
Envelopper
- Ceci est responsable de la localisation des contrÎles de conception sur une seule ligne ou plus. Parmi les valeurs prises en charge figurent les suivantes : Envelopper:
- Indique que les champs peuvent ĂȘtre affichĂ©s sur plusieurs lignes si nĂ©cessaire (flexibilitĂ© Ă la demande) Pas dâemballage :
- Place les éléments sur une seule ligne (valeur par défaut) Inverse:
Indique que les champs peuvent ĂȘtre affichĂ©s sur plusieurs lignes si nĂ©cessaire dans lâordre inverse
JustifierContenu
- Ceci spĂ©cifie comment lâespace entre et autour des enfants sera distribuĂ© le long de lâaxe principal. Parmi les valeurs prises en charge figurent les suivantes : DĂ©but, Centre, Fin :
- Indiquez respectivement le dĂ©but, le centre et la fin Lâespace entre:
- Distribue un espacement Ă©gal entre les contrĂŽles contenus dans la mise en page Espace Autour :
- Les enfants doivent ĂȘtre rĂ©partis uniformĂ©ment, le premier et le dernier enfant ayant un espace demi-taille SpaceEvenly :
RĂ©partissez tous les enfants en ayant un espace Ă©gal autour dâeux
<FlexLayout Direction="Column" AlignItems="Center" JustifyContent="SpaceEvenly">
<Label Text="Give me your name:" />
<Button BackgroundColor="Pink" Text="Enter"/>
</FlexLayout>
Finalement, nous aurions un code comme celui-ci :
Emballer
Câest tout! JâespĂšre que cela vous a plu et Ă partir de maintenant, si ce nâest pas dĂ©jĂ fait, commencez Ă utiliser les diffĂ©rentes mises en page disponibles dans .NET MAUI ! đđ
Ă la prochaine! đââïž
Source link