WPF WrapPanel、UniformGrid、DockPanel介绍

WPF WrapPanel、UniformGrid、DockPanel介绍

WrapPanel
WrapPanel , 具有在有限的容器范围内, 可以自动换行, 或者换列处理。具体则取决于WrapPanel的排列方式 (Orientation)。

Orientation="Horizontal"时各控件从左至右罗列,当面板长度不够时,子控件就会自动换行,继续按照从左至右的顺序排列
Orientation="Vertical"时各控件从上至下罗列,当面板高度不够时,子控件就会自动换列,继续按照从上至下的顺序排列。

<Grid>
        <WrapPanel>
            <Button Content="Button" Width="100" Height="60"></Button>
            <Button Content="Button" Width="150" Height="60"></Button>
            <Button Content="Button" Width="200" Height="60"></Button>
            <Button Content="Button" Width="250" Height="60"></Button>
            <Button Content="Button" Width="200" Height="60"></Button>
            <Button Content="Button" Width="150" Height="60"></Button>
        </WrapPanel>
    </Grid>

在这里插入图片描述

UniformGrid
每个单元格的大小相同,不需要定义行列集合。每个单元格始终具有相同的大小,每个单元格只能容纳一个控件。

与Grid不同的是, 该容器具备Columns/Rows 属性, 通过设置该属性, UniformGrid则具备相应的 行与列, 但是设置的Columns/Rows不允许单独的进行容器的大小设置
位于UniformGrid中的子元素, 按输入顺序排列至容器中, 直至填充容器的所有空间
未显示指定Columns/Rows, UniformGrid则为子元素动态分配Columns/Rows, 换行与换列的基 准主要基于UniformGrid的容器大小( 宽度与高度)。

<Grid>
        <UniformGrid Columns="3" Rows="2">
            <Button Content="Button" Width="100" Height="60"></Button>
            <Button Content="Button" Width="150" Height="60"></Button>
            <Button Content="Button" Width="200" Height="60"></Button>
            <Button Content="Button" Width="250" Height="60"></Button>
            <Button Content="Button" Width="200" Height="60"></Button>
            <Button Content="Button" Width="150" Height="60"></Button>
        </UniformGrid>
    </Grid>

在这里插入图片描述
DockPanel
DockPanel支持让元素简单地停靠在整个面板的某一条边上,然后拉伸元素以填满全部宽度或高度。它也支持让一个元素填充其他已停靠元素没有占用的剩余空间。

包含在DockPanel中的元素, 具备DockPanel.Dock的4个枚举值 (Top/Left/Right/Bottom) 用于设置元素的锚定位置
LastChildFill : 容器中的最后一个元素时, 默认该元素填充DockPanel所有空间, 默认值为True;
DockPanel中的元素未显示添加DockPanel.Dock属性时, 系统则会默认为 DockPanel.Dock=“Left”。

最后一个按钮未设置宽度,则填充剩余所有空间;如下:

<Grid>
        <DockPanel>
            <Button Content="左" DockPanel.Dock="Left" Width="100"></Button>
            <Button Content="中" DockPanel.Dock="Left" Width="100"></Button>
            <Button Content="右" DockPanel.Dock="Right"></Button>
        </DockPanel>
    </Grid>

在这里插入图片描述

最后一个按钮设置了宽度,但是无法靠右,因为默认填充剩余所有空间,居中显示;也可以再单独对它设置HorizontalAlignment="Right"来靠右;如下:

<Grid>
        <DockPanel>
            <Button Content="左" DockPanel.Dock="Left" Width="100"></Button>
            <Button Content="中" DockPanel.Dock="Left" Width="100"></Button>
            <Button Content="右" DockPanel.Dock="Right" Width="100"></Button>
        </DockPanel>
    </Grid>

在这里插入图片描述

也可以设置LastChildFill=“False”,可以取消最后一个控件填充剩余所有空间,达到自动靠右;如下:

<Grid>
        <DockPanel LastChildFill="False">
            <Button Content="左" DockPanel.Dock="Left" Width="100"></Button>
            <Button Content="中" DockPanel.Dock="Left" Width="100"></Button>
            <Button Content="右" DockPanel.Dock="Right" Width="100"></Button>
        </DockPanel>
    </Grid>

在这里插入图片描述

例如:

<Grid Width="400" Height="40" Background="#E8F6F0">
            <DockPanel LastChildFill="False">
                <StackPanel Orientation="Horizontal" DockPanel.Dock="Left">
                    <Image Width="30" Height="30" Source="Imgs/001.png" Margin="10 0 0 0"/>
                    <TextBlock Text="产品信息" FontSize="16" VerticalAlignment="Center" Margin="10 0 0 0"/>
                </StackPanel>
                <TextBlock Text="202/03/06" FontSize="22" Foreground="#8f8f8f" Margin="0 0 10 0" VerticalAlignment="Center" DockPanel.Dock="Right"/>
            </DockPanel>
        </Grid>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值