保证金中的属性顺序


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 2011年


@PapaJohn要更具体地@amit jha提供所提供的链接,请查看标题XAML Values为该链接中的边距的部分。
nam

Answers:


403
Margin="1,2,3,4"
  1. 剩下,
  2. 最佳,
  3. 对,
  4. 底部

也可以仅指定两个大小,如下所示:

Margin="1,2"
  1. 左和右
  2. 顶部和底部

最后,您可以指定一个尺寸:

Margin="1"
  1. 用于所有方面

顺序与WinForms中的顺序相同。


5
LTRB是容易记住的缩写。
2014年

44
注意:这是与html的css顺序不同的顺序,即上,右,下,左。
罗斯金,2015年

7
任何人都对他们为什么决定使用不同于CSS的东西有任何见解?
Charles Clayton

5
@crclayton-如我所写;顺序与WinForms中的顺序相同。WinForms是WPF的自然前身,因此软件(开发人员)可以从WinForms升级到WPF。
Erno 2015年

30
怎么样。WPF从西方开始。Netscape是从北方开始的吗?而且显然都是顺时针方向。
马丁·卡波迪奇

33

有三种独特的情况:

  • 4个数字,例如Margin="a,b,c,d"
  • 2个数字,例如Margin="a,b"
  • 1个数字,例如Margin="a"

4个数字

如果有4个数字,那么它的lefttoprightbottom(顺时针一圈从中间左边距开始)。第一个数字始终是“西部”,例如“ WPF”:

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

示例:如果使用Margin="10,20,30,40"它,则会生成:

在此处输入图片说明

2个数字

如果有2个数字,则第一个是左右边距厚度,第二个是顶部和底部边距厚度。第一个数字始终是“西部”,例如“ 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

在过去的5年中,一直在使用超过100个屏幕的大型WPF应用程序。由5个WPF / C#/ Java开发人员组成的团队的一部分。我们最终选择使用1个数字(表示边框粗细)或4个数字。我们从不使用2。它是一致的,并且似乎是开发时减轻认知负担的好方法。


规则:

所有宽度数字都从左侧开始(“西部”,如“ WPF”),然后顺时针旋转(如果有两个数字,则仅顺时针旋转两次,然后镜像其余数字)。


1
“如果有2个数字,则第一个为左右边距厚度”,但在本示例中,第一个数字为30,最终成为上下边距。
彼得·布鲁因斯

21

仅仅因为@MartinCapodici的评论太棒了,所以我在这里写这是给出可见性的答案。

全部顺时针:

  • W¯¯ PF启动W¯¯ EST(左>顶>右>底)
  • Ñ etscape(即CSS)开始Ñ ORTH(顶>右>自下而上>左)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.