Kolejność właściwości w marginesie


218

Jeśli mam taki ciąg w XAML:

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

Co to jest górne dolne prawe i lewe? 1- prawy 2- górny 3- lewy 4 - dolny

Czy to prawda?


1
Drugi wynik, szukając WPF celu marży, stackoverflow.com/questions/520422/... . lewy górny prawy dolny
Lukazoid


@PapaJohn Aby być bardziej szczegółowym dla @amit jhapodanego linku , spójrz na sekcję zatytułowaną XAML Valuesdla marginesu w tym linku.
nam

Odpowiedzi:


403
Margin="1,2,3,4"
  1. Lewo,
  2. Top,
  3. Dobrze,
  4. Dolny

Możliwe jest również określenie tylko dwóch takich rozmiarów:

Margin="1,2"
  1. Lewo i prawo
  2. Góra i dół

Wreszcie możesz określić jeden rozmiar:

Margin="1"
  1. używane dla wszystkich stron

Kolejność jest taka sama jak w WinForms.


5
LTRB to krótki zapis, który można łatwo zapamiętać.
Sai

44
Uwaga: jest to inna kolejność niż kolejność html w css, czyli Góra, Prawo, Dół, Lewo.
Ruskin

7
Czy ktoś ma jakiś wgląd w to, dlaczego zdecydował się na coś innego niż CSS?
Charles Clayton,

5
@crclayton - Jak napisałem; kolejność jest taka sama jak w WinForms. WinForms jest naturalnym poprzednikiem WPF, więc oprogramowanie (programiści) przeprowadziliby aktualizację z WinForms do WPF.
Erno,

30
Co powiesz na. WPF zaczyna się na Zachodzie. Netscape zaczyna się na północy? I oczywiście w obu przypadkach zgodnie z ruchem wskazówek zegara.
Martin Capodici,

33

Istnieją trzy unikalne sytuacje:

  • 4 liczby , np Margin="a,b,c,d".
  • 2 liczby , np Margin="a,b".
  • 1 liczba , np Margin="a".

4 liczby

Jeśli istnieją 4 numery , to jego left, top, right, bottom(a ruchu wskazówek zegara, zaczynając od koła środkowego lewego marginesu). Pierwsza liczba to zawsze „zachód”, jak „WPF”:

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

Przykład: jeśli Margin="10,20,30,40"go użyjemy , wygeneruje:

wprowadź opis zdjęcia tutaj

2 liczby

Jeśli są 2 liczby , pierwsza to grubość lewego i prawego marginesu, druga to grubość górnego i dolnego marginesu. Pierwsza liczba to zawsze „zachód”, jak „WPF”:

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

Przykład: jeśli użyjemy Margin="10,30", lewy i prawy margines to 10, a górny i dolny to 30.

wprowadź opis zdjęcia tutaj

1 liczba

Jeśli jest 1 liczba , liczba ta jest powtarzana (jest to zasadniczo grubość ramki).

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

Przykład: jeśli Margin="20"go użyjemy , wygeneruje:

wprowadź opis zdjęcia tutaj

Aktualizacja 2020-05-27

Przez ostatnie 5 lat pracowałem nad aplikacją WPF na dużą skalę z ponad 100 ekranami. Część zespołu 5 deweloperów WPF / C # / Java. Ostatecznie zdecydowaliśmy się na użycie 1 liczby (dla grubości obramowania) lub 4 liczb. Nigdy nie używamy 2. Jest spójny i wydaje się dobrym sposobem na zmniejszenie obciążenia poznawczego podczas rozwoju.


Zasada:

Wszystkie numery szerokości zaczynają się po lewej stronie („Zachód” jak „WPF”) i idą zgodnie z ruchem wskazówek zegara (jeśli dwie liczby idą tylko dwa razy zgodnie z ruchem wskazówek zegara, a następnie odbijają pozostałe).


1
„Jeśli są 2 liczby, pierwsza to grubość lewego i prawego marginesu”. Ale w tym przykładzie pierwsza liczba to 30, i kończy się na górnym i dolnym marginesie.
Peter Bruins

21

Tylko dlatego, że komentarz @MartinCapodici jest niesamowity, piszę tutaj jako odpowiedź na widoczność.

Wszystko zgodnie z ruchem wskazówek zegara:

  • W PF start W est (lewy-> górny-> prawy-> dolny)
  • N etscape (tj. CSS) start N orth (góra-> prawo-> dół-> lewo)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.