Thứ tự thuộc tính trong ký quỹ


218

Nếu tôi có chuỗi như vậy trong XAML:

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

Trên cùng bên phải và bên trái là gì? 1- phải 2- trên 3- trái 4 - dưới

Có đúng không?


1
Kết quả thứ hai khi tìm kiếm thứ tự ký quỹ WPF, stackoverflow.com/questions/520422/ săn . trên cùng bên trái phía dưới bên phải
Lukazoid


@PapaJohn Để cụ thể hơn đối với liên kết @amit jhađược cung cấp, hãy xem phần có tiêu đề XAML Valuescho lề trong liên kết đó.
nam

Câu trả lời:


403
Margin="1,2,3,4"
  1. Trái,
  2. Hàng đầu,
  3. Đúng,
  4. Dưới cùng

Cũng có thể chỉ định hai kích thước như thế này:

Margin="1,2"
  1. Bên trái và bên phải
  2. Trên cùng và dưới cùng

Cuối cùng, bạn có thể chỉ định một kích thước duy nhất:

Margin="1"
  1. sử dụng cho tất cả các mặt

Thứ tự giống như trong WinForms.


5
LTRB là ký hiệu ngắn để dễ nhớ.
Sai

44
Lưu ý: đây là một thứ tự khác với thứ tự css của html, đó là Top, Right, bottom, Left.
Ruskin

7
Bất cứ ai cũng có cái nhìn sâu sắc về lý do tại sao họ quyết định đi với một cái gì đó khác với CSS?
Charles Clayton

5
@crclayton - Như tôi đã viết; thứ tự giống như trong WinForms. WinForms là tiền thân tự nhiên của WPF nên phần mềm (nhà phát triển) sẽ nâng cấp từ WinForms lên WPF.
Erno

30
Làm thế nào về. WPF bắt đầu ở phương Tây. Netscape bắt đầu ở miền Bắc? Và rõ ràng theo chiều kim đồng hồ cho cả hai.
Martin Capodici

33

Có ba tình huống duy nhất:

  • 4 số , vd Margin="a,b,c,d".
  • 2 số , vd Margin="a,b".
  • 1 số , vd Margin="a".

4 số

Nếu có 4 số , sau đó nó left, top, right, bottom(một vòng tròn chiều kim đồng hồ bắt đầu từ lề giữa bên trái). Số đầu tiên luôn là "Tây" như "WPF":

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

Ví dụ: nếu chúng ta sử dụng Margin="10,20,30,40"nó sẽ tạo ra:

nhập mô tả hình ảnh ở đây

2 số

Nếu có 2 số , thì số thứ nhất là độ dày lề trái & phải, số thứ hai là độ dày lề trên & dưới. Số đầu tiên luôn là "Tây" như "WPF":

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

Ví dụ: nếu chúng ta sử dụng Margin="10,30", lề trái & phải đều là 10 và trên cùng & dưới cùng là 30.

nhập mô tả hình ảnh ở đây

1 số

Nếu có 1 số , thì số đó được lặp lại (về cơ bản là độ dày đường viền).

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

Ví dụ: nếu chúng ta sử dụng Margin="20"nó sẽ tạo ra:

nhập mô tả hình ảnh ở đây

Cập nhật 2020-05-27

Đã làm việc trên một ứng dụng WPF quy mô lớn trong 5 năm qua với hơn 100 màn hình. Một phần của nhóm 5 nhà phát triển WPF / C # / Java. Cuối cùng chúng tôi đã giải quyết bằng cách sử dụng 1 số (cho độ dày đường viền) hoặc 4 số. Chúng tôi không bao giờ sử dụng 2. Nó phù hợp, và dường như là một cách tốt để giảm tải nhận thức khi phát triển.


Quy tắc:

Tất cả các số chiều rộng bắt đầu ở bên trái ("Tây" như "WPF") và đi theo chiều kim đồng hồ (nếu hai số, chỉ đi theo chiều kim đồng hồ hai lần, sau đó phản chiếu phần còn lại).


1
"Nếu có 2 số, thì số đầu tiên là độ dày lề trái & phải" Nhưng trong ví dụ, số đầu tiên là 30 và cuối cùng là lề trên & dưới.
Peter Bruins

21

Chỉ vì nhận xét của @MartinCapodici là tuyệt vời, tôi viết ở đây như một câu trả lời để cung cấp cho khả năng hiển thị.

Tất cả theo chiều kim đồng hồ:

  • W PF bắt đầu W est (trái-> trên-> phải-> dưới)
  • N etscape (tức là CSS) bắt đầu N orth (top-> right-> bottom-> left)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.