WrapPanel布局面板将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够时就会自动调整进行换行,后续排序按照从上至下或从左至右的顺序进行。
水平排列:当Orientation属性的值设置为 Horizontal:元素是从左向右排列的,然后自上至下自动换行。如下所示:
示例源码所示:
<Window x:Class="WpfApp1.ThirdWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="WrapPanel示例" Height="450" Width="400">
<WrapPanel Margin="5,5,5,5">
<Button x:Name="button1" Content="第一个按钮" Margin="2,5,2,5"></Button>
<Button x:Name="button2" Content="第二个按钮" Margin="2,5,2,5"></Button>
<Button x:Name="button3" Content="第三个按钮" Margin="2,5,2,5"></Button>
<Button x:Name="button4" Content="第四个按钮" Margin="2,5,2,5"></Button>
<Button x:Name="button5" Content="第五个按钮" Margin="2,5,2,5"></Button>
<Button x:Name="button6" Content="第六个按钮" Margin="2,5,2,5"></Button>
<Button x:Name="button7" Content="第七个按钮" Margin="2,5,2,5"></Button>
</WrapPanel>
</Window>
垂直排列:默认为水平排列,通过设置WrapPanel的Orientation属性为Vertical,可以修改排列方向,垂直排列,如下所示:
示例源码如下所示:
<WrapPanel Margin="5,5,5,5" Orientation="Vertical">
<Button x:Name="button1" Content="第一个按钮" Margin="2,5,2,5" Height="40"></Button>
<Button x:Name="button2" Content="第二个按钮" Margin="2,5,2,5" Height="40"></Button>
<Button x:Name="button3" Content="第三个按钮" Margin="2,5,2,5" Height="40"></Button>
<Button x:Name="button4" Content="第四个按钮" Margin="2,5,2,5" Height="40"></Button>
<Button x:Name="button5" Content="第五个按钮" Margin="2,5,2,5" Height="40"></Button>
<Button x:Name="button6" Content="第六个按钮" Margin="2,5,2,5" Height="40"></Button>
<Button x:Name="button7" Content="第七个按钮" Margin="2,5,2,5" Height="40"></Button>
</WrapPanel>
WrapPanel其他常用属性,除了StackPanel属性常用属性,还有两个,如下所示:
-
ItemHeight:所有的元素都相同高度。
-
ItemWidth:所有的元素都相同宽度。
其他子元素设置的属性,如果大于ItemHeight,ItemWidth的值,则被截取。如下所示:
源码如下所示:
<WrapPanel Margin="5,5,5,5" Orientation="Vertical" ItemHeight="30" ItemWidth="100">
<Button x:Name="button1" Content="第一个按钮" Margin="2,5,2,5" Height="40"></Button>
<Button x:Name="button2" Content="第二个按钮" Margin="2,5,2,5" Height="40"></Button>
<Button x:Name="button3" Content="第三个按钮" Margin="2,5,2,5" Height="40"></Button>
<Button x:Name="button4" Content="第四个按钮" Margin="2,5,2,5" Height="40"></Button>
<Button x:Name="button5" Content="第五个按钮" Margin="2,5,2,5" Height="40"></Button>
<Button x:Name="button6" Content="第六个按钮" Margin="2,5,2,5" Height="40"></Button>
<Button x:Name="button7" Content="第七个按钮" Margin="2,5,2,5" Height="40"></Button>
</WrapPanel>