轉帖|其它|編輯:郝浩|2011-04-06 13:41:57.000|閱讀 3698 次
概述:WPF布局控件都是派生自System.Windows.Controls.Panel抽象類的面板,Panel類繼承自 FrameworkElement,Panel類本身并沒有什么特別的,但是WPF中提供了許多用于布局的控件都繼承自Panel類,如 StackPanel控件,WrapPanel,DockPanel,Grid,UniformGrid,Canvas等 。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
WPF布局控件都是派生自System.Windows.Controls.Panel抽象類的面板,Panel類繼承自FrameworkElement,Panel類本身并沒有什么特別的,但是WPF中提供了許多用于布局的控件都繼承自Panel類,如StackPanel控件,WrapPanel,DockPanel,Grid,UniformGrid,Canvas等 。
接下來對布局控件做簡單介紹:
1.StackPanel控件(將子元素排列成一行(可沿水平或垂直方向))
<StackPanel Name="stackPanel1" >
<Button Content="Button" Name="button1"/>
<Button Content="Button" Name="button2" />
<Button Content="Button" Name="button3" />
<Button Content="Button" Name="button4" />
</StackPanel>
默認情況下StackPanel面板從上到下地排列元素,使每個元素的高度適合顯示的內容,可以通過設置Orientation屬性為Horizontal為水平
在這個例子中所有的元素都被拉伸到StackPanel面板的整個寬度,這也是窗口的寬度,加寬窗口StackPanel也會變寬,并且按鈕也會拉伸他們自己以適應自己寬度變化。
StackPanel控件常見幾個屬性:
(1)public HorizontalAlignment HorizontalAlignment { get; set; }
(獲取或設置在父元素(如面板或項控件)中構成此元素時應用于此元素的水平對齊特征),它是一個枚舉值,默認情況下為Stretch完全充滿整個容器。
(2)public VerticalAlignment VerticalAlignment { get; set; }
(獲取或設置在父元素(如面板或項控件)中組合此元素時應用于此元素的垂直對齊特征。)默認情況下為Stretch
類型:System.Windows.VerticalAlignment
(3)public Thickness Margin { get; set; }(獲取和設置元素的外邊距)
類型:System.Windows.Thickness
提供元素的邊距值。 默認值是所有屬性都等于 0,默認的左,上,右,下。如果將Margin="15",這種設置將所有的邊距都設置成相同的寬度15,margin="20,50"這種設法將左右外邊距設置成20,上下50
(4)Height設置元素的高度,另外兩個MinHeight和WaxHeight分別為最小尺寸和最大尺寸,如果這三個值存在沖突,首先必須采用 MinHeight;然后采用 MaxHeight;最后,如果 Height 位于限制之內,則采用該值
(5)Width同樣和上面Height屬性類似。
所有的上面這些屬性都是繼承自FrameworkElement基類,所以在WPF中使用的所有圖形元素都支持這些屬性。
2.WarpPanel面板和DockPanel面板
WarpPanel:從左至右按順序位置定位子元素,在包含框的邊緣處將內容斷開至下一行。
可以通過 Orientation設置其排列方式,該控件主要用來控制用戶界面布局的細節。
DockPanel
<DockPanel>
<Button Content="Button" DockPanel.Dock="Left" />
<Button Content="Button" DockPanel.Dock="Bottom"/>
<Button Content="Button" DockPanel.Dock="Right"/>
<Button Content="Button" DockPanel.Dock="Top" />
<Button Content="Button" />
</DockPanel>
可以通過上面四個附加屬性來定義按鈕位于DockPanel的那個位置。因為在WPF中很少單獨的使用StackPanel,WrapPanel,DockPanel進行布局,他們通常用于布局用戶界面的一部分,下面將介紹Grid面板
3.Grid面板
Grid面板是WPF中最強大的布局控件,是有行和列組成的網格,s類似于HTML中的table。
Grid面板通過使用對象填充Grid.RowDefinitions和Grid.ColumnDefinitions集合的方式來創建列和行。
<Grid x:Name="LayoutRoot" Background="DarkGray">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition ></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition ></ColumnDefinition>
</Grid.ColumnDefinitions>
</Grid>
上面創建了個三行兩列的表格。Grid表格中的所有行和列平均分配空間。
在單元格中放置控件可以通過Row和Column附加屬性來設置。
Grid控件支持三種改變尺寸的方式:
(1)<ColumnDefinition Width="100"></ColumnDefinition>絕對改變尺寸的方式,這種方式設置沒有什么用途,不夠靈活,難以處理文本的大小改變和包容器的大小改變。
(2)<ColumnDefinition Width="Auto"></ColumnDefinition>自動改變尺寸,這種方式最有用。
(3)<ColumnDefinition Width="*"></ColumnDefinition>按比例尺寸改變。
Grid中使用RowSpan和Column這兩個屬性來跨行和跨列
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:博客園