WPF的容器控件之StackPanel、WrapPanel、DockPanel

WPF的容器控件之StackPanel、WrapPanel、DockPanel

局部容器,用来修饰部分元素的空间排布。

StackPanel

适合在局部对于水平或者垂直方向要求进行布局的页面。.

放置几个Button按钮

默认排列方式为从上而下。

<StackPanel>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
</StackPanel>

在这里插入图片描述

设置排列方向

使用Orientation属性修改排列方向。其中Horizontal为水平排列,Vertical为垂直排列。

<StackPanel Orientation="Horizontal">
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
</StackPanel>

在这里插入图片描述

<StackPanel Orientation="Vertical">
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
</StackPanel>

在这里插入图片描述

WrapPanel

可以看做自动换行功能的StackPanel容器。

放置几个Button按钮

默认排列方式为水平排列。

<WrapPanel Grid.Row="1">
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
</WrapPanel>

在这里插入图片描述

设置排列方向

使用Orientation属性修改排列方向。其中Horizontal为水平排列,Vertical为垂直排列。

<WrapPanel Grid.Row="1" Orientation="Horizontal">
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
</WrapPanel>

在这里插入图片描述

<WrapPanel Grid.Row="1" Orientation="Vertical">
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
   <Button Width="100" Height="50"/>
</WrapPanel>

在这里插入图片描述

StackPanel与WrapPanel的区别

StackPanel不会根据元素是否能够完整分布而进行换行、换列调整,但WrapPanel可以自动调整。

DockPanel停靠容器

DockPanel停靠容器,专门负责自适应窗口的布局定义一个区域,在此区域中,可以使子元素通过描点的形式排列,这些对象位于 Children 属性中。类似于WinForm中控件的Dock属性。DockPanel会对每个子元素进行排序,并将根据指定的边进行停靠,多个停靠在同侧的元素则按顺序排序。在DockPanel中,指定停靠边的控件,会根据定义的顺序占领边角,所有控件绝不会交叠。
默认情况下,后添加的元素只能使用剩余空间,无论对DockPanel的最后一个子元素设置任何停靠值,该子元素都将始终填满剩余的空间

放置几个Button按钮

<Grid>
   <DockPanel>
       <Button Width="100" Height="50"/>
       <Button Width="100" Height="50"/>
       <Button Width="100" Height="50"/>
       <Button Width="100" Height="50"/>
    </DockPanel>
</Grid>

在这里插入图片描述

最后一个元素不填充剩余区域

如果不希望最后一个元素填充剩余区域,可以将DockPanel属性LastChildFill设置为false,还必须为最后一个子元素显式指定停靠方向。

<Grid>
   <DockPanel LastChildFill="False">
       <Button Width="100" Height="50"/>
       <Button Width="100" Height="50"/>
       <Button Width="100" Height="50"/>
       <Button Width="100" Height="50"/>
   </DockPanel>
</Grid>

指定元素停靠方向

设置DockPanel的Dock属性,指定元素停靠方向。

    <Grid>
        <DockPanel LastChildFill="False">
            <Button Width="100" Height="50"/>
            <Button Width="100" Height="50"/>
            <Button Width="100" Height="50"/>
            <Button Width="100" Height="50" DockPanel.Dock="Right"/>
        </DockPanel>
    </Grid>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值