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

黃埔街頭的寒風發表於2021-06-02

在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的特性值,來起效。

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

 

相關文章