Site icon Blog ARC Optimizer

Exploration des options de mise en page dans .NET MAUI

Exploration des options de mise en page dans .NET MAUI


.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
Quitter la version mobile