天天看点

WPF中TabItem的Margin属性设置记录

下午搞WPF,弄一个选项页,这给难搞的··· 由于没有学过WPF,所以误以为Margin和css的样式一样。。。好坑啊。

PS:这里只是针对TabControl 的 TabItem 的 Margin 属性来说,其他的另当别论。(起码我遇到的其他的都是 css 的兄弟)

我们添加一个 TabControl 控件。下面是初始的时候 (第二个TabItem 是我弄到右边的,太小。。。)

WPF中TabItem的Margin属性设置记录
WPF中TabItem的Margin属性设置记录

我们想改变 TabItem 的位置,往右移动一下下~~~ 

代码设置 Margin="xxx" 就不写了,因为我不会 : )

拖动一下(右移10个单位),观察属性值:

WPF中TabItem的Margin属性设置记录
WPF中TabItem的Margin属性设置记录

是谁?哪里来的 -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的语法,说错的地方还请各位指正,谢谢>