各種WPF容器控件類別總結(jié)
WPF中有很多功能強(qiáng)大的控件可以供我們方便使用。這些控件的掌握對(duì)于我們實(shí)際編程開(kāi)發(fā)具有很大的作用。下面我們就為大家講解一些WPF容器控件的相關(guān)介紹。#t#
Grid、Canvas 或 StackPanel 等WPF容器控件通過(guò)提供內(nèi)置布局功能允許您快速設(shè)計(jì)各種有效的用戶界面。每種容器控件處理其包含的控件的布局和位置,并且可以向包含的控件提供有助于定位的屬性。本主題概述了不同類型的容器控件以及這些容器控件如何影響其包含的控件的布局。
Grid
最為熟悉的WPF容器控件是 Grid 控件。默認(rèn)情況下,在 Visual Studio Windows Presentation Foundation (WPF) 設(shè)計(jì)器中打開(kāi)的每個(gè)新 Window 中都包含一個(gè) Grid 控件。Grid 允許您將控件放置在用戶可定義的單元格內(nèi)。對(duì)于放置在單元格內(nèi)的控件,在調(diào)整 Window 的大小時(shí),兩個(gè)或更多個(gè)控件邊緣與單元格邊緣之間的邊距保持固定不變。有關(guān)如何設(shè)置邊距的更多信息,請(qǐng)參見(jiàn)如何:在 WPF 設(shè)計(jì)器中設(shè)置控件的邊距。
添加到 Window 中時(shí),Grid 控件包括單個(gè)單元格。可以在代碼中或 WPF 設(shè)計(jì)器中添加更多垂直和水平行。有關(guān)更多信息,請(qǐng)參見(jiàn)如何:向網(wǎng)格中添加行和列。
UniformGrid
UniformGrid 控件為控件提供了一種簡(jiǎn)化的網(wǎng)格布局。當(dāng)控件添加到 UniformGrid 時(shí),它們會(huì)排列在一個(gè)網(wǎng)格模式中,該網(wǎng)格模式會(huì)自動(dòng)調(diào)整以使控件之間的距離保持均勻。單元格的數(shù)目將進(jìn)行調(diào)整,以適應(yīng)控件的數(shù)目。例如,如果四個(gè)WPF容器控件添加到 UniformGrid 中,它們將安排在包含四個(gè)單元格的網(wǎng)格中。
Canvas
Canvas 控件支持絕對(duì)定位并為其包含的控件提供最少的內(nèi)置布局功能。Canvas 允許您將包含的控件放置在距離面板的任一角有一定偏移量的位置。Canvas 為包含的WPF容器控件提供四種屬性:Top、Bottom、Right 和 Left。Canvas 控件內(nèi)包含的控件必須指定一個(gè)水平屬性和一個(gè)垂直屬性,并借此指定該控件將要偏離的角。例如,如果某個(gè)控件為 Top 和 Right 指定值,則該控件將與右上角之間保持不變的距離。如果為多個(gè)水平或垂直屬性指定值,則這些值中的一個(gè)將被忽略。有關(guān)更多信息,請(qǐng)參見(jiàn)如何:根據(jù)絕對(duì)定位構(gòu)造布局。
StackPanel
StackPanel 要么垂直疊放包含的控件,要么將包含的WPF容器控件排列在水平行中,具體情況取決于 Orientation 屬性的值。如果將比 StackPanel 的寬度能顯示的控件還要多的控件添加到 StackPanel 中,這些控件將被截掉且不顯示。
WrapPanel
在根據(jù) Orientation 屬性垂直疊放WPF容器控件或者在行中放置控件方面,WrapPanel 與 StackPanel 類似。除了疊放外,WrapPanel 還為包含的控件提供了換行支持。因此,如果將比 WrapPanel 的寬度能顯示的控件還要多的控件添加到 WrapPanel 中,這些控件將換行以形成另一個(gè)疊放或行。
DockPanel
DockPanel 提供停靠支持,以便讓工具欄或您希望停靠在面板一側(cè)的其他控件容易定位。DockPanel 控件向包含的WPF容器控件提供了一個(gè)名為 DockStyle 的屬性,該屬性決定包含的控件的定位方式。例如,DockStyle 屬性設(shè)置為 DockStyle.Top 的控件將停靠到 DockPanel 頂部。DockPanel 還公開(kāi)了一個(gè)名為 LastChildFill 的屬性。當(dāng)此屬性為 true 時(shí),添加到 DockPanel 中的***一個(gè)子控件將使其 DockStyle 屬性自動(dòng)設(shè)置為 true。