Immobilienbestellung in Margin

218

Wenn ich eine solche Zeichenfolge in XAML habe:

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

Was ist oben unten rechts und links? 1- rechts 2- oben 3- links 4 - unten

Ist das richtig?

Papa John
quelle
1
Zweites Ergebnis bei der Suche nach WPF-Margin-Reihenfolge: stackoverflow.com/questions/520422/… . links oben rechts unten
Lukazoid
@PapaJohn Um genauer auf den @amit jhabereitgestellten Link einzugehen, lesen Sie den Abschnitt mit XAML Valuesdem Titel für den Rand in diesem Link.
Nam

Antworten:

403
Margin="1,2,3,4"
  1. Links,
  2. Oben,
  3. Richtig,
  4. Unterseite

Es ist auch möglich, nur zwei Größen wie diese anzugeben:

Margin="1,2"
  1. Links und rechts
  2. Oben und unten

Schließlich können Sie eine einzelne Größe angeben:

Margin="1"
  1. für alle Seiten verwendet

Die Reihenfolge ist dieselbe wie in WinForms.

Erno
quelle
5
LTRB ist die Kurznotation, an die man sich leicht erinnern kann.
Sai
44
Hinweis: Dies ist eine andere Reihenfolge als die CSS-Reihenfolge von HTML: Oben, Rechts, Unten, Links.
Ruskin
7
Hat jemand einen Einblick, warum er sich für etwas anderes als CSS entschieden hat?
Charles Clayton
5
@crclayton - Wie ich schrieb; Die Reihenfolge ist dieselbe wie in WinForms. WinForms ist der natürliche Vorgänger von WPF, sodass Software (Entwickler) von WinForms auf WPF aktualisieren würde.
Erno
30
Wie wäre es mit. WPF startet im Westen. Netscape startet im Norden? Und natürlich für beide im Uhrzeigersinn.
Martin Capodici
33

Es gibt drei einzigartige Situationen:

  • 4 Zahlen , z Margin="a,b,c,d".
  • 2 Zahlen , z Margin="a,b".
  • 1 Nummer , z Margin="a".

4 Zahlen

Wenn es 4 Zahlen , dann wird sie left, top, right, bottom(ein Kreis im Uhrzeigersinn von der Mitte linken Rande ausgehend). Die erste Nummer ist immer der "Westen" wie "WPF":

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

Beispiel: Wenn wir es verwenden, wird Margin="10,20,30,40"Folgendes generiert:

Geben Sie hier die Bildbeschreibung ein

2 Zahlen

Wenn es 2 Zahlen gibt , ist die erste die Dicke des linken und rechten Randes, die zweite die Dicke des oberen und unteren Randes. Die erste Nummer ist immer der "Westen" wie "WPF":

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

Beispiel: Wenn wir verwenden Margin="10,30", sind der linke und der rechte Rand beide 10 und der obere und untere Rand beide 30.

Geben Sie hier die Bildbeschreibung ein

1 Nummer

Wenn es 1 Zahl gibt , wird die Zahl wiederholt (es ist im Wesentlichen eine Randdicke).

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

Beispiel: Wenn wir es verwenden, wird Margin="20"Folgendes generiert:

Geben Sie hier die Bildbeschreibung ein

Update 2020-05-27

Ich habe in den letzten 5 Jahren an einer groß angelegten WPF-Anwendung mit über 100 Bildschirmen gearbeitet. Teil eines Teams von 5 WPF / C # / Java-Entwicklern. Wir haben uns schließlich dafür entschieden, entweder 1 Zahl (für die Randdicke) oder 4 Zahlen zu verwenden. Wir verwenden niemals 2. Es ist konsistent und scheint ein guter Weg zu sein, um die kognitive Belastung bei der Entwicklung zu reduzieren.


Die Regel:

Alle Breitenzahlen beginnen links (der "Westen" wie "WPF") und gehen im Uhrzeigersinn (wenn zwei Zahlen, gehen Sie nur zweimal im Uhrzeigersinn, dann spiegeln Sie den Rest).

Contango
quelle
1
"Wenn es 2 Zahlen gibt, ist die erste die Dicke des linken und rechten Randes." Im Beispiel ist die erste Zahl jedoch 30 und endet am oberen und unteren Rand.
Peter Bruins
21

Nur weil der Kommentar von @MartinCapodici großartig ist, schreibe ich hier als Antwort, um die Sichtbarkeit zu verbessern.

Alles im Uhrzeigersinn:

  • W PF beginnen W est (links-> top-> rechts-> unten)
  • N etscape (dh CSS) startet N orth (oben-> rechts-> unten-> links)
Askolein
quelle
7
<object Margin="left,top,right,bottom"/>
- or - 
<object Margin="left,top"/>
- or - 
<object Margin="thicknessReference"/>

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

Chopikadze
quelle
3
Für das zweite Beispiel, "links, oben", wird es tatsächlich wiederholt: Die erste Zahl bezieht sich auf links und rechts, die zweite auf oben und unten, siehe meine Antwort unten.
Contango