C++ Builder 參考手冊 ? 使用控件的 Align 屬性自動調整位置和大小
C++ Builder 幾乎所有可以顯示在 Form 上的控件都有 Align 屬性篡撵。
和 Anchors 屬性類似汁蝶,Align 屬性也是自動調整控件大小和位置的沙兰。
控件的 Align 屬性
Align 屬性取值為 alTop、alBottom、alLeft 和 alRight 時蕾总,在窗口或容器中的位置:
Align 屬性取不同的值在窗口中的位置
在安排控件位置的時候囤屹,先安排上下,再安排左右付魔,剩下的給客戶區(qū):
- 首先處理的是 Align 屬性為 alTop 和 alBottom 的控件聊品,把他們分別放在窗口或容器的上面和下面,寬度和窗口或容器的客戶區(qū)相等几苍,例如工具條和狀態(tài)欄翻屈;
- 接下來處理的是 alLeft 和 alRight,分別放在窗口的左邊和右邊妻坝,高度和窗口或容器的這部分區(qū)域相同伸眶,例如導航欄惊窖;
- 最后處理的是 alClient,窗口去除 alTop厘贼、alLeft界酒、alRight、alBottom 控件之外的部分嘴秸,占滿這個區(qū)域盾计,例如瀏覽或文字編輯區(qū)域等。
Align 屬性值 | 說明 |
---|---|
alNone | 控件保持原來的位置和大小赁遗,大多數(shù)控件 Align 的默認值都是 alNone |
alTop | 放在窗口或容器的上邊署辉,寬度和窗口或容器相等,高度保持不變 |
alBottom | 放在窗口或容器的下邊岩四,寬度和窗口或容器相等哭尝,高度保持不變 |
alLeft | 放在窗口或容器中除去 Align 屬性為 alTop 或 alBottom 的控件占用的空間之外的剩余的部分的左邊,高度和這部分區(qū)域的高度相等剖煌,寬度保持不變 |
alRight | 放在窗口或容器中除去 Align 屬性為 alTop 或 alBottom 的控件占用的空間之外的剩余的部分的右邊材鹦,高度和這部分區(qū)域的高度相等,寬度保持不變 |
alClient | 放在窗口或容器除去 Align 屬性為 alTop耕姊、alBottom桶唐、alLeft、alRight 之外的部分 |
alCustom | 這樣的控件茉兰,按照窗口或容器控件的 OnAlignInsertBefore 和 OnAlignPosition 事件處理位置和大小 |
例子:窗口上面有一個 TreeView 樹形結構尤泽,一個 ListView 表格,下面的 Panel1 里面放 3 個按鈕 Button1规脸、Button2 和 Button3坯约。
需要安排控件自動調整位置和大小的窗口
要注意先設 alTop、alBottom莫鸭,再設 alLeft 和 alRight 屬性的控件闹丐,最后設 alClient 的控件,因為先把 alClient 設上了被因,這個控件就占滿窗口了卿拴,如果發(fā)現(xiàn)控件占滿窗口把別的控件都擋住了,需要把這個控件的 Align 屬性改回 alNone梨与,把別的控件都調整好了再把這個 alClient 設上堕花。
控件 | Align 屬性值 |
---|---|
Panel1 | alBottom |
TreeView1 | alLeft |
ListView1 | alClient |
控件設好 Align 屬性之后
由于設置了 Align 屬性,控件就占滿他所在的區(qū)域蛋欣,所以普通的按鈕不適合設 Align 屬性航徙,如果希望右下角的 Button3 始終在屏幕右下角,可以把 Button3 的 Anchors 屬性設為 akTop 和 akRight (參考我的上一篇文章:使用控件的 Anchors 屬性)陷虎。
運行時縮小窗口的效果
運行時放大窗口的效果
相關:
C++ Builder 參考手冊 ? 使用控件的 Align 屬性自動調整位置和大小