คำสั่งซื้ออสังหาริมทรัพย์ใน Margin


218

หากฉันมีสตริงดังกล่าวใน XAML:

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

ด้านล่างขวาและซ้ายคืออะไร 1- ขวา 2- ด้านบน 3- ซ้าย 4 - ด้านล่าง

นั่นถูกต้องใช่ไหม?


1
ผลประการที่สองเมื่อค้นหาสำหรับการสั่งซื้อขอบ WPF, stackoverflow.com/questions/520422/... ซ้ายบนขวาล่าง
Lukazoid


@PapaJohn หากต้องการเฉพาะเจาะจงมากขึ้นกับลิงก์ที่@amit jhaให้ไว้ให้ดูที่ส่วนชื่อXAML Valuesสำหรับระยะขอบในลิงก์นั้น
nam

คำตอบ:


403
Margin="1,2,3,4"
  1. ซ้าย,
  2. ด้านบน
  3. ขวา,
  4. ด้านล่าง

นอกจากนี้ยังเป็นไปได้ที่จะระบุเพียงสองขนาดดังนี้:

Margin="1,2"
  1. ซ้ายและขวา
  2. บนและล่าง

ในที่สุดคุณสามารถระบุขนาดเดียว:

Margin="1"
  1. ใช้สำหรับทุกด้าน

คำสั่งนั้นเหมือนกับใน WinForms


5
LTRB เป็นสัญกรณ์สั้น ๆ ที่ต้องจดจำได้ง่าย
สาย

44
หมายเหตุ: นี่เป็นคำสั่งที่แตกต่างจากคำสั่ง css ของ html ซึ่งคือ Top, Right, Bottom, Left
Ruskin

7
ทุกคนมีความเข้าใจว่าทำไมพวกเขาถึงตัดสินใจเลือกสิ่งที่แตกต่างจาก CSS
Charles Clayton

5
@ crclayton - ตามที่ฉันเขียน; คำสั่งนั้นเหมือนกับ WinForms WinForms เป็นรุ่นก่อนธรรมชาติสำหรับ WPF ดังนั้นซอฟต์แวร์ (นักพัฒนาซอฟต์แวร์) จะอัปเกรดจาก WinForms เป็น WPF
Erno

30
เกี่ยวกับ. WPF เริ่มต้นในตะวันตก Netscape เริ่มต้นในภาคเหนือหรือไม่? และตามเข็มนาฬิกาอย่างชัดเจนสำหรับทั้งสอง
Martin Capodici

33

มีสามสถานการณ์ที่ไม่ซ้ำกัน:

  • 4 ตัวเลขMargin="a,b,c,d"เช่น
  • 2 หมายเลขMargin="a,b"เช่น
  • 1 หมายเลขMargin="a"เช่น

4 ตัวเลข

หากมีตัวเลข 4แล้วของมันleft, top, right, bottom(วงกลมตามเข็มนาฬิกาเริ่มต้นจากขอบซ้ายกลาง) หมายเลขแรกจะเป็น "West" เช่น "WPF" เสมอ:

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

ตัวอย่าง: ถ้าเราใช้Margin="10,20,30,40"มันสร้าง:

ป้อนคำอธิบายรูปภาพที่นี่

2 ตัวเลข

หากมีตัวเลข2 ตัวความหนาขอบด้านซ้ายและด้านขวาอันที่สองคือความหนาขอบด้านบนและด้านล่าง หมายเลขแรกจะเป็น "West" เช่น "WPF" เสมอ:

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

ตัวอย่าง: หากเราใช้Margin="10,30"ระยะขอบซ้ายและขวาคือทั้ง 10 และด้านบนและล่างคือทั้ง 30

ป้อนคำอธิบายรูปภาพที่นี่

1 จำนวน

หากมีจำนวน 1 จำนวนนั้นจะถูกทำซ้ำจำนวน (มันเป็นความหนาชายแดน)

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

ตัวอย่าง: ถ้าเราใช้Margin="20"มันสร้าง:

ป้อนคำอธิบายรูปภาพที่นี่

อัปเดต 2020-05-27

ทำงานกับแอพพลิเคชั่น WPF ขนาดใหญ่เป็นเวลา 5 ปีที่ผ่านมาด้วยหน้าจอมากกว่า 100 หน้าจอ เป็นส่วนหนึ่งของทีมงาน 5 WPF / C # / Java devs ในที่สุดเราก็ตัดสินโดยใช้ 1 หมายเลข (สำหรับความหนาของเส้นขอบ) หรือ 4 หมายเลข เราไม่เคยใช้ 2 มันสอดคล้องและดูเหมือนจะเป็นวิธีที่ดีในการลดภาระการรับรู้เมื่อพัฒนา


กฎ:

หมายเลขความกว้างทั้งหมดเริ่มต้นที่ด้านซ้าย ("West" เช่น "WPF") และไปตามเข็มนาฬิกา (หากตัวเลขสองตัวให้ไปตามเข็มนาฬิกาสองครั้งเท่านั้นจากนั้นสะท้อนส่วนที่เหลือ)


1
"หากมีตัวเลข 2 ตัวค่าแรกคือความหนาของขอบซ้ายและขวา" แต่ในตัวอย่างหมายเลขแรกคือ 30 และท้ายที่สุดก็คือขอบบนและล่าง
Peter Bruins

21

เพียงเพราะความคิดเห็นของ @MartinCapodici นั้นยอดเยี่ยมฉันเขียนที่นี่เพื่อตอบคำถาม

ตามเข็มนาฬิกาทั้งหมด:

  • W PF เริ่มต้นW est (ซ้าย -> ด้านบน -> ด้านขวา -> ด้านล่าง)
  • N etscape (เช่น CSS) เริ่มN orth (บน -> ขวา -> ล่าง -> ซ้าย)

7
<object Margin="left,top,right,bottom"/>
- or - 
<object Margin="left,top"/>
- or - 
<object Margin="thicknessReference"/>

ดูที่นี่: http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.margin.aspx


3
สำหรับตัวอย่างที่สอง "left, top" ซ้ำแล้วซ้ำอีกจริง: หมายเลขแรกอ้างถึงซ้ายและขวา, ที่สองจากบนสุดและล่างดูคำตอบของฉันด้านล่าง
Contango
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.