WPF中Grid容器中VerticalAlignment和HorizonAlignment和Margin的關係。

在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後兩位的值了。

 

2,如下圖所示,如果為Rectangle設置了VerticalAlignment=Bottom,HorizonAlignment=Right ,Margin=「30,20」

將會顯示為這個樣子。Bottom表示在豎直方向上靠底部(相對於Grid),Right表示在水平方向上靠右(相對於Grid)。

Margin中的50和20,分別表示距離Grid的右邊界和下邊界的距離為30,20。此時再設置Margin的Left和Top的值,是無

效的,即使設置了,系統也會按照Margin的後兩位值來布局。

通過以上兩點可以看出,Grid容器中,還是以VerticalAlignment和HorizonAlignment的特性值為主,Margin

的特性值為輔。Marign的特性值,按照VerticalAlignment和HorizonAlignment的特性值,來起效。

本來自己就是一個方向感不強的人,俗稱路痴,今天晚上豁然明白,與大家共享。

 

Tags: