下午搞WPF,弄一个选项页,这给难搞的··· 由于没有学过WPF,所以误以为Margin和css的样式一样。。。好坑啊。
PS:这里只是针对TabControl 的 TabItem 的 Margin 属性来说,其他的另当别论。(起码我遇到的其他的都是 css 的兄弟)
我们添加一个 TabControl 控件。下面是初始的时候 (第二个TabItem 是我弄到右边的,太小。。。)
我们想改变 TabItem 的位置,往右移动一下下~~~
代码设置 Margin="xxx" 就不写了,因为我不会 : )
拖动一下(右移10个单位),观察属性值:
是谁?哪里来的 -10?
然后我就懵逼了。 (其实刚开始自己设定Margin 值得时候,就已经不知道哪里错了)
仔细看一看,发现 TabItem 的宽度是61,改变它的宽度,右侧"布局"中 Width - Auto 最小是61,如果宽度增加也会随之增加.(我的测试结果)
然后测试:把 TabItem 宽度减小,→的值就会变为正数 (小于61时);大于61,那就是负数。
于是我们就猜测:TabItem 的默认右边界是61,小于61则Margin的第三个值为到61的差值;大于61就是差值的相反数。 (对不起,高中数学就学成这个死样)
同理我们就得到了:Margin(x1, x2, x3, x4) 中
x1 - 距离默认左边界的距离
x2 - 距离默认上边界的距离
x3 - 距离默认右边界的距离
x4 - 距离默认下边界的距离
目前个人理解:xaml 中的 Margin 的值是相对的,并且作参考的坐标系也不像通常以为的窗口左上角啥的,就像这个 TabItem 就是自己默认的位置作为坐标系原点。
<由于本人没有看过xaml的语法,说错的地方还请各位指正,谢谢>