Ordine delle proprietà in margine


219

Se ho una tale stringa in XAML:

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

Cosa sono in alto a destra e a sinistra? 1- destra 2- superiore 3- sinistra 4 - inferiore

È giusto?


1
Secondo risultato durante la ricerca dell'ordine del margine WPF, stackoverflow.com/questions/520422/… . in alto a sinistra in basso a destra
Lukazoid il


@PapaJohn Per essere più specifici al link @amit jhafornito, guarda la sezione intitolata XAML Valuesper il margine in quel link.
nam

Risposte:


404
Margin="1,2,3,4"
  1. Sinistra,
  2. Superiore,
  3. Destra,
  4. Parte inferiore

È anche possibile specificare solo due dimensioni come questa:

Margin="1,2"
  1. Sinistra e destra
  2. Sopra e sotto

Finalmente puoi specificare una singola dimensione:

Margin="1"
  1. usato per tutti i lati

L'ordine è lo stesso di WinForms.


5
LTRB è la notazione breve da ricordare facilmente.
Sai,

44
Nota: questo è un ordine diverso rispetto all'ordine css di html, che è in alto, a destra, in basso, a sinistra.
Ruskin,

7
Qualcuno ha qualche idea sul perché hanno deciso di scegliere qualcosa di diverso dal CSS?
Charles Clayton

5
@crclayton - Come ho scritto; l'ordine è lo stesso di WinForms. WinForms è il predecessore naturale per WPF, quindi il software (gli sviluppatori) aggiornerebbe da WinForms a WPF.
Erno

30
Che ne dite di. WPF inizia in Occidente. Netscape inizia nel nord? E ovviamente in senso orario per entrambi.
Martin Capodici,

34

Esistono tre situazioni uniche:

  • 4 numeri , ad es Margin="a,b,c,d".
  • 2 numeri , ad es Margin="a,b".
  • 1 numero , ad es Margin="a".

4 numeri

Se vi sono 4 numeri , allora la sua left, top, right, bottom(un cerchio in senso orario a partire dal margine sinistro centrale). Il primo numero è sempre "Ovest" come "WPF":

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

Esempio: se lo usiamo Margin="10,20,30,40"genera:

inserisci qui la descrizione dell'immagine

2 numeri

Se ci sono 2 numeri , il primo è lo spessore del margine sinistro e destro, il secondo è lo spessore del margine superiore e inferiore. Il primo numero è sempre "Ovest" come "WPF":

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

Esempio: se utilizziamo Margin="10,30", il margine sinistro e destro sono entrambi 10 e il margine superiore e inferiore sono entrambi 30.

inserisci qui la descrizione dell'immagine

1 numero

Se c'è 1 numero , il numero viene ripetuto (è essenzialmente uno spessore del bordo).

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

Esempio: se lo usiamo Margin="20"genera:

inserisci qui la descrizione dell'immagine

Aggiornamento 2020-05-27

Negli ultimi 5 anni ho lavorato su un'applicazione WPF su larga scala con oltre 100 schermi. Parte di un team di 5 sviluppatori WPF / C # / Java. Alla fine abbiamo deciso di utilizzare 1 numero (per lo spessore del bordo) o 4 numeri. Non usiamo mai 2. È coerente e sembra essere un buon modo per ridurre il carico cognitivo durante lo sviluppo.


La regola:

Tutti i numeri di larghezza iniziano a sinistra (l '"Ovest" come "WPF") e vanno in senso orario (se due numeri, vanno solo in senso orario due volte, quindi rispecchia il resto).


1
"Se ci sono 2 numeri, il primo è lo spessore del margine destro e sinistro" Ma nell'esempio il primo numero è 30 e finisce per essere il margine superiore e inferiore.
Peter Bruins,

21

Solo perché il commento di @MartinCapodici è fantastico scrivo qui come risposta per dare visibilità.

Tutto in senso orario:

  • W PF avvia W est (sinistra-> in alto-> destra-> in basso)
  • N etscape (ovvero CSS) avvia N orth (in alto- > a destra-> in basso-> a sinistra)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.