WPF,这个对齐方式,帮我弄迷糊了
两个问题:
1:
外部Button设置的内容对齐方式Left,内部Button设置与父容器的水平对方为Center,结果却是靠左的,以哪个为准呢?
2:如果改成下面这样的代码:
[解决办法]
1.外部设置HorizontalContentAlignment="Left",因为你的外部Content赋了一个Button对象,所以内部这个Button左对齐。
内部设置HorizontalContentAlignment="Center",因为你的内部Content赋值"熊俊",所以"熊俊"剧中对齐。
2.HorizontalContentAlignment的默认值是Center
*请注意HorizontalContentAlignment和HorizontalAlignment是2个不同的属性!
[解决办法]
你看看button的模板就理解了,Content是放在ContentPresenter中,你设置Content元素的HorizontalAlignment只是在ContentPresenter内部的位置。而ContentPresenter在什么位置是由Button决定的。
[解决办法]
1.外部设置HorizontalContentAlignment="Left",因为你的外部Content赋了一个Button对象,所以内部这个Button左对齐。
内部设置HorizontalContentAlignment="Center",因为你的内部Content赋值"熊俊",所以"熊俊"剧中对齐。
2.HorizontalContentAlignment的默认值是Center
*请注意HorizontalContentAlignment和HorizontalAlignment是2个不同的属性!
是啊,HorizontalContentAlignment和HorizontalAlignment是2个不同的属性,所以第一个问题我并没有内部设置HorizontalContentAlignment="Center",而是HorizontalAlignment="Center"。
第二个问题也是内部设置了HorizontalAlignment="Center",为什么不靠左呢?
你看看button的模板就理解了,Content是放在ContentPresenter中,你设置Content元素的HorizontalAlignment只是在ContentPresenter内部的位置。而ContentPresenter在什么位置是由Button决定的。
设置Content元素的HorizontalAlignment只是在ContentPresenter内部的位置?不是与父元素的水平对齐方式吗?
父元素是ContentPresenter啊!不是Button,你要了解模板就没这么些问题了。