在WPF中,经常使用Grid容器,来布局我们想要显示的对象。

这就不可避免的要和布局在其中的控件的VerticalAlignment特性,HorizonAlignment特性,以及Margin特性打交道。

如果在Grid中放置了一个Rectangle控件,对Rectangle又设置了VerticalAlignment,HorizonAlignment,Margin,

这三者都是用来设置位置的,那么,它们是怎么来起效的呢?

1,如下图所示,如果为Rectangle设置了VerticalAlignment=Top,HorizonAlignment=Left ,Margin=“50,20”

将会显示为这个样子。Top表示在竖直方向上靠上(相对于Grid),Left表示在水平方向上靠左(相对于Grid)。

Margin中的50和20,分别表示距离Grid的左边界和上边界的距离为50,20。此时,再设置Marin的Right和Bottom,

是无效的,也就不要再写Margin后两位的值了。

WPF中Grid容器中VerticalAlignment和HorizonAlignment和Margin的关系。-LMLPHP

2,如下图所示,如果为Rectangle设置了VerticalAlignment=Bottom,HorizonAlignment=Right ,Margin=“30,20”

将会显示为这个样子。Bottom表示在竖直方向上靠底部(相对于Grid),Right表示在水平方向上靠右(相对于Grid)。

Margin中的50和20,分别表示距离Grid的右边界和下边界的距离为30,20。此时再设置Margin的Left和Top的值,是无

效的,即使设置了,系统也会按照Margin的后两位值来布局。

WPF中Grid容器中VerticalAlignment和HorizonAlignment和Margin的关系。-LMLPHP

通过以上两点可以看出,Grid容器中,还是以VerticalAlignment和HorizonAlignment的特性值为主,Margin

的特性值为辅。Marign的特性值,按照VerticalAlignment和HorizonAlignment的特性值,来起效。

本来自己就是一个方向感不强的人,俗称路痴,今天晚上豁然明白,与大家共享。

06-03 10:57