栈式面板.

StackPanel是一种布局工具,用于按行或列顺序排列控件,不换行。它可以设置为横排或竖排,根据Orientation属性。当元素超出面板空间时,多余内容会被截断。常用于制作菜单和列表等需要紧凑排列的场景。本文通过实例展示了StackPanel在横向布局中的应用及方向设置对布局的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

StackPanel就是将控件按照行或列来顺序排列,但不会换行。 通过设置面板的Orientation属性设置了两种排列方式:横排(Horizontal)和竖排(Vertical默认的)。水平排列时,每个元素都与面板一样高;垂直排列时,每个元素都与面板一样宽。如果包含的元素超过了面板空间,它只会截断多出的内容。
特点: 每个元素各占一行或者一列;使用场合: 同类元素需要紧凑排列(如制作菜单和列表)。 移除其中的元素后能够自动补缺的布局或者动画。
在这里插入图片描述
StackPanel 适合水平或者垂直方向的布局,在下面的例子中我们大量的使用该种布局式。适合局部区域的布局,比如菜单栏,我们来使 用StackPanel来进行布局

<StackPanel Orientation="Vertical" VerticalAlignment="Stretch">
        <GroupBox Header="网站分类" Height="Auto">
            <StackPanel Orientation="Vertical">
                <Button Content=".NET技术(16)"/>
                <Button Content="编程语言(13)"/>
                <Button Content="软件设计(3)"/>
                <Button Content="Web前端(16)"/>
                <Button Content="软件工程(26)"/>
            </StackPanel>
        </GroupBox>
        <GroupBox Header="链接" Height="Auto">
            <StackPanel Orientation="Vertical">
                <Button Content="反馈和建议"/>
                <Button Content="官方博客"/>
                <Button Content="电子期刊" />
                <Button Content="人才服务"/>
                <Button Content="博客模板"/>
            </StackPanel>
        </GroupBox>
</StackPanel>

运行效果如下:
在这里插入图片描述
对于水平或者垂直方向要求进行布局的,我们都可以采用StackPanel来进行布局。下面我们来看看横向布局的例子:
我们通过表格中的使用对StackPanel的停靠定位,进而通过Stackpanel对内部的子控件的停靠方向设置,例子如下

<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
        <Button Content="何戈洲" Margin="5,0,0,0"/>
        <Button Content="我的博客" Margin="5,0,0,0"/>
        <Button Content="短消息" Margin="5,0,0,0"/>
        <Button Content="设置" Margin="5,0,0,0"/>
        <Button Content="退出" Margin="5,0,0,0"/>
</StackPanel>

在这里插入图片描述
StackPanel在父容器中是右对齐的。 然后再StackPanel容器中,如果也采用内容右对齐,会有什么效果呢?

<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
        <Button Content="何戈洲" Margin="5,0,0,0" HorizontalAlignment="Right"/>
        <Button Content="我的博客" Margin="5,0,0,0" HorizontalAlignment="Right"/>
        <Button Content="短消息" Margin="5,0,0,0" HorizontalAlignment="Right"/>
        <Button Content="设置" Margin="5,0,0,0" HorizontalAlignment="Right"/>
        <Button Content="退出" Margin="5,0,0,0" HorizontalAlignment="Right"/>
</StackPanel>

设置子控件的停靠方式时,不会起到任何作用,默认情况下,Stack的水平布局时,从左至右。

<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" FlowDirection="RightToLeft">
        <Button Content="何戈洲" Margin="5,0,0,0" HorizontalAlignment="Right"/>
        <Button Content="我的博客" Margin="5,0,0,0" HorizontalAlignment="Right"/>
        <Button Content="短消息" Margin="5,0,0,0" HorizontalAlignment="Right"/>
        <Button Content="设置" Margin="5,0,0,0" HorizontalAlignment="Right"/>
        <Button Content="退出" Margin="5,0,0,0" HorizontalAlignment="Right"/>
</StackPanel>

修改了FlowDirection设置了StackPanel的方向后,所有的子控件,都是从右向左方向进行绘制和显示,效果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值