Ordre des propriétés en marge

218

Si j'ai une telle chaîne en XAML:

Storyboard.TargetProperty="Margin" From="1,2,3,4" To="0,0,0,0"

Qu'est-ce que Top Bottom Right et Left? 1- droite 2- en haut 3- gauche 4 - en bas

Est-ce correct?

Papa John
la source
1
Second résultat lors de la recherche d'un ordre de marge WPF, stackoverflow.com/questions/520422/… . gauche en haut à droite en bas
Lukazoid
@PapaJohn Pour être plus précis sur le lien @amit jhafourni, regardez la section intitulée XAML Valuespour la marge dans ce lien.
nam

Réponses:

403
Margin="1,2,3,4"
  1. La gauche,
  2. Haut,
  3. Droite,
  4. Bas

Il est également possible de spécifier seulement deux tailles comme ceci:

Margin="1,2"
  1. Gauche et droite
  2. Haut et bas

Enfin, vous pouvez spécifier une seule taille:

Margin="1"
  1. utilisé pour tous les côtés

L'ordre est le même que dans WinForms.

Euh non
la source
5
LTRB est la notation courte à retenir facilement.
Sai
44
Remarque: il s'agit d'un ordre différent de l'ordre CSS de html, qui est Haut, Droite, Bas, Gauche.
Ruskin
7
Quelqu'un a-t-il une idée de pourquoi ils ont décidé d'aller avec quelque chose de différent de CSS?
Charles Clayton
5
@crclayton - Comme je l'ai écrit; l'ordre est le même que dans WinForms. WinForms est le prédécesseur naturel de WPF afin que les logiciels (développeurs) passent de WinForms à WPF.
Erno
30
Que diriez-vous. WPF démarre en Occident. Netscape commence dans le Nord? Et évidemment dans le sens horaire pour les deux.
Martin Capodici
33

Il existe trois situations uniques:

  • 4 chiffres , par exemple Margin="a,b,c,d".
  • 2 chiffres , par exemple Margin="a,b".
  • 1 numéro , par exemple Margin="a".

4 numéros

S'il y a 4 chiffres , puis son left, top, right, bottom(un cercle dans le sens horaire à partir de la marge gauche du milieu). Le premier numéro est toujours "l'Ouest" comme "WPF":

<object Margin="left,top,right,bottom"/>

Exemple: si nous l'utilisons, Margin="10,20,30,40"cela génère:

entrez la description de l'image ici

2 numéros

S'il y a 2 nombres , le premier est l'épaisseur de la marge gauche et droite, le second est l'épaisseur de la marge supérieure et inférieure. Le premier numéro est toujours "l'Ouest" comme "WPF":

<object Margin="a,b"/> // Equivalent to Margin="a,b,a,b".

Exemple: si nous utilisons Margin="10,30", la marge gauche et droite est à la fois 10, et le haut et le bas sont à la fois 30.

entrez la description de l'image ici

1 numéro

S'il y a 1 nombre , alors le nombre est répété (c'est essentiellement une épaisseur de bordure).

<object Margin="a"/> // Equivalent to Margin="a,a,a,a".

Exemple: si nous l'utilisons, Margin="20"cela génère:

entrez la description de l'image ici

Mise à jour 2020-05-27

Travaille sur une application WPF à grande échelle depuis 5 ans avec plus de 100 écrans. Membre d'une équipe de 5 développeurs WPF / C # / Java. Nous avons finalement opté soit pour 1 numéro (pour l'épaisseur de la bordure), soit pour 4 numéros. Nous n'en utilisons jamais 2. Il est cohérent et semble être un bon moyen de réduire la charge cognitive lors du développement.


La règle:

Tous les numéros de largeur commencent sur la gauche (le "Ouest" comme "WPF") et vont dans le sens des aiguilles d'une montre (si deux nombres, ne vont que deux fois dans le sens des aiguilles d'une montre, puis reflètent le reste).

Contango
la source
1
"S'il y a 2 nombres, alors le premier est l'épaisseur de la marge gauche et droite" Mais dans l'exemple, le premier nombre est 30, et il finit par être la marge supérieure et inférieure.
Peter Bruins
21

Juste parce que le commentaire de @MartinCapodici est génial, j'écris ici comme réponse pour donner de la visibilité.

Tous dans le sens horaire:

  • W PF start W est (gauche-> haut-> droite-> bas)
  • N etscape (ie CSS) start N orth (haut-> droite-> bas-> gauche)
Askolein
la source
7
<object Margin="left,top,right,bottom"/>
- or - 
<object Margin="left,top"/>
- or - 
<object Margin="thicknessReference"/>

Voir ici: http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.margin.aspx

chopikadze
la source
3
Pour le deuxième exemple, «gauche, haut», il est en fait répété: le premier chiffre fait référence à gauche et à droite, le second en haut et en bas, voir ma réponse ci-dessous.
Contango