應用程序界面設計中,合理的元素布局至關重要,它可以方便用戶使用,並將信息清晰合理地展現給用戶。WPF提供了一套功能強大的工具-面板(Panel),來控制用戶界面的布局。你可以使用這些面板控件來排布元素。如果內置布局控件不能滿足需要的話,還可以創建自定義的布局元素。
面板(Panel)
WPF用於布局的面板主要有6個,StackPanel(棧面板)、WrapPanel(環繞面板)。DockPanel(停靠面板)、Canvas(畫布)、Grid(網格面板)和UniformGrid(均布網格)。
StackPanel:棧面板
棧面板,可以將元素排列成一行或者一列,其特點是:每個元素各占一行或者一列,Orientation屬性指定排列方式:Vertical(垂直)【默認】、Horizontal(水平),默認情況下,水平排列時,每個元素都與面板一樣高;垂直排列時,每個元素都與面板一樣寬。如果包含的元素超過了面板空間,它只會截斷多出的內容。 元素的Margin屬性用於使元素之間產生一定得間隔,當元素空間大於其內容的空間時,剩余空間將由HorizontalAlignment和 VerticalAlignment屬性來決定如何分配。
1、垂直方向排列
界面運行效果:
使用XAML代碼實現:
1 <Window x:Class="WpfDemo.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 Title="StackPanel面板" Height="237" Width="525" WindowStartupLocation="CenterScreen"> 5 <StackPanel x:Name="stackpanel" Margin="0" Orientation="Vertical"> 6 <Button Content="第一個"></Button> 7 <Button Content="第二個"></Button> 8 <Button Content="第三個"></Button> 9 <Button Content="第四個"></Button> 10 </StackPanel> 11 </Window>
2、水平方向排列
界面運行效果:
使用XAML代碼實現:
1 <Window x:Class="WpfDemo.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 Title="StackPanel面板" Height="237" Width="525" WindowStartupLocation="CenterScreen"> 5 <StackPanel x:Name="stackpanel" Margin="0" Orientation="Horizontal"> 6 <Button Content="第一個"></Button> 7 <Button Content="第二個"></Button> 8 <Button Content="第三個"></Button> 9 <Button Content="第四個"></Button> 10 </StackPanel> 11 </Window>
注: 當把StackPanel的FlowDirection屬性設置為RightToLeft,Orientation屬性設置為Horizontal,StackPanel將從右向左排列元素。