首先要弄明白你删掉的代码是做什么用的
这些触发器就是用于设置TabItem布局,你可以看到在触发器中有设置Head和content的位置(Row),高度宽度以及margin。删掉了这些触发器,TabItem的布局位置就没有了,也就是会认为TabItem的Head和Content都会从坐标(0,0)开始。所以TabItem的内容就会错位,错位的偏移大小刚好就是TabItem的Head的大小。
在vs2010中,你可以把代码修改成下面这样,即修改TabItem的高度和宽度为0,为了方便观看,把TabItem的内容用蓝色Grid填充。
这时候点击Grid可以看到选择框的偏移消失了。也就是说你在Button中看到的选择框偏移其实就是TabItem占用的。
看到这里可能也发现了,默认的Tabitem对齐方式是TOP,但是删掉的三个触发器中是Left,right和bottom,没有删除Top,但是却对显示产生影响了。影响仅仅是选择框偏移,但实际控件并没有偏移。
这其实是VS2010的小Bug,在VS2012中,这个问题已经被处理了。
可以看看同样的代码在VS2010(上图)和2012(下图)的显示区别
所以结论就是,在vs2010中不要更改那三个Trigger,如果更改了,其实是没有影响的,就是显示会有偏差,如果在vs2012下那就没有问题了