WPF使用StackPanel栈面板布局

应用程序界面设计中,合理的元素布局至关重要,它可以方便用户使用,并将信息清晰合理地展现给用户。WPF提供了一套功能强大的工具-面板(Panel),来控制用户界面的布局。你可以使用这些面板控件来排布元素。如果内置布局控件不能满足需要的话,还可以创建自定义的布局元素。

面板(Panel)

WPF用于布局的面板主要有6个,StackPanel(栈面板)、WrapPanel(环绕面板)。DockPanel(停靠面板)、Canvas(画布)、Grid(网格面板)和UniformGrid(均布网格)。

StackPanel:栈面板

栈面板,可以将元素排列成一行或者一列,其特点是:每个元素各占一行或者一列,Orientation属性指定排列方式:Vertical(垂直)【默认】、Horizontal(水平),默认情况下,水平排列时,每个元素都与面板一样高;垂直排列时,每个元素都与面板一样宽。如果包含的元素超过了面板空间,它只会截断多出的内容。 元素的Margin属性用于使元素之间产生一定得间隔,当元素空间大于其内容的空间时,剩余空间将由HorizontalAlignment和 VerticalAlignment属性来决定如何分配。

1、垂直方向排列

界面运行效果:

使用XAML代码实现:

<Window x:Class="WpfDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="StackPanel面板" Height="237" Width="525" WindowStartupLocation="CenterScreen">
    <StackPanel x:Name="stackpanel" Margin="0" Orientation="Vertical">
        <Button Content="第一个"></Button>
        <Button Content="第二个"></Button>
        <Button Content="第三个"></Button>
        <Button Content="第四个"></Button>
    </StackPanel>
</Window>

2、水平方向排列

界面运行效果:

使用XAML代码实现:

<Window x:Class="WpfDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="StackPanel面板" Height="237" Width="525" WindowStartupLocation="CenterScreen">
    <StackPanel x:Name="stackpanel" Margin="0" Orientation="Horizontal">
        <Button Content="第一个"></Button>
        <Button Content="第二个"></Button>
        <Button Content="第三个"></Button>
        <Button Content="第四个"></Button>
    </StackPanel>
</Window>

注:当把StackPanel的FlowDirection属性设置为RightToLeft,Orientation属性设置为Horizontal,StackPanel将从右向左排列元素。

到此这篇关于WPF使用StackPanel栈面板布局的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • WPF使用WrapPanel环绕面板布局

    WrapPanel:环绕面板 WrapPanel布局面板将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够时就会自动调整进行换行,后续排序按照从上至下或从右至左的顺序进行. Orientation——根据内容自动换行.当Orientation属性的值设置为 Horizontal:元素是从左向右排列的,然后自上至下自动换行.当Orientation属性的值设置为Vertical:元素是从上向下排列的,然后从左至右自动换行. ItemHeight——所有子元素都一致的高度.每个子元素填充高度的

  • WPF使用Canvas画布面板布局

    Canvas:画布面板 画布,用于完全控制每个元素的精确位置.他是布局控件中最为简单的一种,直接将元素放到指定位置,主要来布置图面.使用Canvas,必须指定一个子元素的位置(相对于画布),否则所有元素都将出现在画布的左上角.调整位置用Left.Right.Top和Bottom四个附加属性.如果Canvas是窗口主元素(即最外层的布局面板是Canvas),用户改变窗口大小时,Canvas也会随之变化,子元素的位置也会随之移动,以保证相对于Canvas的位置属性不变. Canvas允许子元素的部分

  • WPF简介与基础开发

    一.WPF简介 WPF:WPF即Windows Presentation Foundation,翻译为中文“Windows呈现基础”,是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分.它提供了统一的编程模型.语言和框架,真正做到了分离界面设计人员与开发人员的工作:同时它提供了全新的多媒体交互用户图形界面. 二.WPF特点 1.统一的编程模型 WPF提供的编程模型统一普通控件.语音.视频.文档3D等技术,这些媒体类型能够统一协调工作,降低了

  • WPF使用DockPanel停靠面板布局

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

  • WPF使用Grid网格面板布局

    Grid:网格面板 Grid顾名思义就是“网格”,以表格形式布局元素,对于整个面板上的元素进行布局,它的子控件被放在一个一个事先定义好的小格子里面,整齐配列. Grid和其他各个Panel比较起来,功能最多也最为复杂.要使用Grid,首先要向RowDefinitions和ColumnDefinitions属性中添加一定数量的RowDefinitions和 ColumnDefinitions元素,从而定义行数和列数.而放置在Grid面板中的控件元素都必须显示采用Row和Column附加属性定义其放

  • WPF使用StackPanel栈面板布局

    应用程序界面设计中,合理的元素布局至关重要,它可以方便用户使用,并将信息清晰合理地展现给用户.WPF提供了一套功能强大的工具-面板(Panel),来控制用户界面的布局.你可以使用这些面板控件来排布元素.如果内置布局控件不能满足需要的话,还可以创建自定义的布局元素. 面板(Panel) WPF用于布局的面板主要有6个,StackPanel(栈面板).WrapPanel(环绕面板).DockPanel(停靠面板).Canvas(画布).Grid(网格面板)和UniformGrid(均布网格). St

  • WPF常见布局面板用法及介绍

    目录 常见的几个布局面板 1.StackPanel面板 2.WarpPanel面板 3.DockPanel面板 5.UniformGrid面板 6.Canvas面板 常见的几个布局面板 1.StackPanel面板 StackPanel面板能够简单根据单行或者单列进行元素排列, StackPanel 默认的布局方向为垂直方向(Vertical), 由Orientation属性控制. Orientation属性: 用户控制布局方向是垂直还是横向排列.分别有两个值可选:Vertical.Horizo

  • WPF中常用的布局容器介绍

    目录 一.简介 二.代码案例 1.Border 2.StackPanel 3.WrapPanel 4.DockPanel 5.Grid 6.UniformGrid 7.Canvas 8.ScrollViewer 一.简介 所有的WPF布局容器都派生自System.Windows.Controls.Panel.Panel继承自FrameworkElement. 在Panel中有一个比较重要的属性是UIElementCollection 类型的Children属性,UIElementCollecti

  • Java Swing组件BoxLayout布局用法示例

    本文实例讲述了Java Swing组件BoxLayout布局用法.分享给大家供大家参考,具体如下: BoxLayout 可以把控件依次进行水平或者垂直排列布局,这是通过参数 X_AXIS.Y_AXIS 来决定的.X_AXIS 表示水平排列,而 Y_AXIS 表示垂直排列.BoxLayout 的构造函数有两个参数,一个参数定义使用该 BoxLayout 的容器,另一个参数是指定 BoxLayout 是采用水平还是垂直排列.下面是一个使用 BoxLayout排列控件的例子: JPanel panel

  • Java图形界面GUI布局方式(小结)

    流式布局 采用流式布局会将元素按从左到右的顺序排列,如果一个元素在一行中放不下,那这个元素会另起一行依然按照从左到右的顺序排列 示例: 代码 public class Test { public static void main(String[] args) { // 创建窗口 JFrame jFrame = new JFrame(); // 设置窗口名称 jFrame.setTitle("hello"); // 创建流式布局管理器 对齐方式为左对齐 LayoutManager lay

  • WPF使用WrapPanel实现虚拟化效果

    WrapPanel 实现虚拟化 1.框架使用大于等于.NET40: 2.Visual Studio 2022; 3.项目使用 MIT 开源许可协议: 4.众所周知 WPF 的 StackPanel 在加载大量数据时性能会特别差,但是官方提供了一个虚拟化容器VirtualizingStackPanel: VirtualizingStackPanel.IsVirtualizing 附加属性设置为 true时就开启虚拟化. VirtualizingStackPanel.IsVirtualizing 附

随机推荐