WPF入门之布局

article/2025/9/22 2:42:54

一、类型

wpf的布局有五种大类

  • DockPanel 停靠面板
  • StackPanel 栈面板
  • WrapPanel 环绕面板
  • Grid  网格面板
  • Canvas   精准定位

二、区别

1、DockPanel 面板,里面的元素用Dock属性来设置停靠在哪个方向,分别有:Right(右停靠),Left(左停靠),Buttom(下停靠),Top(上停靠)

<DockPanel LastChildFill="False"><Button DockPanel.Dock="Left" Content="左停靠"/><Button DockPanel.Dock="Right" Content="右停靠"/><Button DockPanel.Dock="Top" Content="上停靠"/><Button DockPanel.Dock="Bottom" Content="下停靠"/></DockPanel>

效果:

DockPanel的LastChildFill属性表明,最后一个参数是否撑满整个容器,默认为true。

 2、StackPanel栈面板,特征是每个元素占一行或一列,不会换行,可根据Orientation属性,设置Vertical竖向排列,或者Horizontal横向排列,默认值是Vertical。在这个面板中你可以把一项一项元素按照方向堆叠

<StackPanel Orientation="Horizontal"><Button Content="横向1"/><Button Content="横向2"/><Button Content="横向3"/><Button Content="横向4"/></StackPanel><StackPanel Orientation="Vertical"><Button Content="竖向1"/><Button Content="竖向2"/><Button Content="竖向3"/><Button Content="竖向4"/></StackPanel>

效果图:

 

 3、WrapPanel,它和上面的StackPanel很像,但WrapPanel里面的元素如果超出了长度或者宽度,会换行。同样它也是靠Orientation属性来设置是Horizontal(从左往右排列,超出向下换行),或者Vertical(从上往下排列,从左往右换行),默认值是Orientation

<Window x:Class="CriticalValueMonitor.MainWindow"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"mc:Ignorable="d"Title="测试页面" Height="300" Width="500"><WrapPanel Orientation="Horizontal"><Button Content="横向1" Width="140"/><Button Content="横向2" Width="140"/><Button Content="横向3" Width="140"/><Button Content="横向4" Width="140"/></WrapPanel>
</Window>

 效果图:

 四、Grid,网格式布局,它的特征是将页面分成一个一个小格子,然后将控件放在格子里面。它是所有布局里面最复杂,但是应用最广泛的布局。Grid的主要属性为:ColumnDefinitions,RowDefinitions,表明有几行和几列,ShowGridLines属性是表明是否显示网格线,默认是false。控件用Grid.Columu来配置在第几列,Grid.Row来配置在第几行。

<Window x:Class="CriticalValueMonitor.MainWindow"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"mc:Ignorable="d"Title="测试页面" Height="300" Width="500"><Grid ShowGridLines="True"><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions><Grid.RowDefinitions><RowDefinition/><RowDefinition/><RowDefinition/></Grid.RowDefinitions><Button Content="button1" Grid.Column="0" Grid.Row="0"/><Button Content="button2" Grid.Column="1" Grid.Row="1"/><Button Content="button3" Grid.Column="2" Grid.Row="2"/></Grid>
</Window>

效果图:

五、Canvas布局,一个类似坐标系的面板,通过left,right,right,bottom 四个字段来设置控件的摆放位置。

<Canvas><Button Content="Test1" Canvas.Left="0" Canvas.Top="20"  Width="60"/><Button Content="Test2" Canvas.Right="0" Canvas.Bottom="60" Width="60"/><Button Content="Test3" Canvas.Left="150" Canvas.Top="50" Width="60"/><Button Content="Test4" Canvas.Right="150" Canvas.Bottom="50"  Width="60"/></Canvas>

canvas还有一个z_index属性来设置控件的折叠顺序,如果不设置z_index,系统是按照控件定义的先后顺序来排序,定义了z_index属性,可调整控件的重叠顺序

例:不加z_index时

<Canvas><Button Content="Test1" Canvas.Left="150" Canvas.Top="60"  Width="90" Height="50" Background="Yellow" Foreground="Gray"/><Button Content="Test2" Canvas.Left="150" Canvas.Top="80" Width="90"  Height="50" Background="Red" Foreground="White"/><Button Content="Test3" Canvas.Left="150" Canvas.Top="100" Width="90"  Height="50" Background="green" Foreground="White"/><Button Content="Test4" Canvas.Left="150" Canvas.Top="120"  Width="90"  Height="50" /></Canvas>

呈现效果:

 加了z_index 之后:

<Canvas><Button Content="Test1" Panel.ZIndex="3"  Canvas.Left="150" Canvas.Top="60"  Width="90" Height="50" Background="Yellow" Foreground="Gray"/><Button Content="Test2" Panel.ZIndex="2" Canvas.Left="150" Canvas.Top="80" Width="90"  Height="50" Background="Red" Foreground="White"/><Button Content="Test3" Panel.ZIndex="1" Canvas.Left="150" Canvas.Top="100" Width="90"  Height="50" Background="green" Foreground="White"/><Button Content="Test4" Panel.ZIndex="0" Canvas.Left="150" Canvas.Top="120"  Width="90"  Height="50" /></Canvas>

效果:

 


http://chatgpt.dhexx.cn/article/eegVpPRW.shtml

相关文章

WPF双向绑定

一&#xff0e;WPF双向绑定 1.1下载Mvvm配置 点击工具 NuGet ,选择中间的管理解决方案包&#xff0c;查询Mvvm选择MvvmLight 和MvvmLight libraries only进行安装。不能马上关闭网络&#xff0c;需要网络加载引用。 继承MVVM :ViewModelBase 上下文DataContext 1.2 数据库…

WPF图表控件

在用WPF开发中&#xff0c;我们也会涉及到用图表来表示数据&#xff0c;而用图表可以直观表示&#xff0c;让客户一目了然。 那么图表在WPF中应运而生&#xff0c;而在WPF中使用图表控件来实现这一效果。其中图表控件也有很多&#xff0c;比如&#xff1a;柱形图(Column)、曲线…

WPF 应用发布

WPF 应用程序发布 发布位置安装位置设置发布位置 发布之后的文件存放位置 安装位置 如果勾选从CD、DVD 或 USB 驱动器 , 则默认为允许脱机使用 设置 如果不允许脱机使用 , 则默认必须检测更新 , 本机不会有安装和开始菜单的启动入口(程序文件会藏在C:\Users\Administrat…

WPF弹窗

实现弹窗 弹窗和前面实现的登录跳转的功能类似&#xff0c;都是定义一个窗口类&#xff0c;在其它窗口的函数中实例化使用。区别在于&#xff0c;登录跳转实例化新的窗体后&#xff0c;登录的窗体就丢弃了&#xff0c;保留新建的窗体&#xff1b;而弹窗则是一个临时性窗体&…

WPF文件创建

在创建WPF文件时和创建MVC文件一样要先打开Visual Studio开发工具&#xff0c;然后再去创建一个新的文件。 打开Visual Studio开发工具之后点击创建新项目然后弹出创建新项目的所有语言&#xff1a; 2.然后点击搜索模板&#xff0c;在搜索模板中输入“WPF”然后就会搜索出跟WP…

WPF数据绑定

一、概念&#xff1a;什么是数据绑定&#xff1f; WPF中的数据绑定&#xff1a;是在应用程序 UI 与业务逻辑之间建立连接的过程&#xff1b; 扩展&#xff1a; 1.为应用程序提供了一种表示数据和与数据交互的简单而又一致的方法。 2.元素能够以公共语言运行时 (CLR) 对象和 XML…

WPF入门0:WPF的基础知识

WPF入门0&#xff1a;WPF的基础知识 WPF 可创建动态的数据驱动的呈现系统。 系统的每一部分均可通过驱动行为的属性集来创建对象。 数据绑定是系统的基础部分&#xff0c;在每一层中均进行了集成。 传统的应用程序创建一个显示内容&#xff0c;然后绑定到某些数据。 在 WPF 中…

WPF 常用控件

WPF六种常用控件&#xff1a;布局控件、内容控件、带标题内容控件、条目控件、带标题条目控件和特殊内容控件(如:TextBox,TextBlock,Image等)。 实例链接&#xff1a;WPF常用控件实例 Window(窗体) Winodw窗体派生自ContentControl&#xff0c;有一个Content属性&#xff0c;里…

什么是WPF,对WPF的认识

一&#xff0c;什么是WPF WPF&#xff08;Windows Presentation Foundation&#xff09;翻译为中文“Windows呈现基础” 是微软新发布的Vista操作系统的三个核心开发库之一&#xff0c;是微软推出的基于Windows Vista的用户界面框架&#xff0c;属于.NET Framework 3.0的一部分…

关于VRRP

目录 HSRP的定义 小结&#xff1a; VRRP作用: VRRP的好处: 工作原理: VRRP与浮动路由的区别 怎么样让路由器成为主路由器呢? 项目实施 拓扑图 步骤 1、打开二层交换机 2、打开三层交换机 3、打开路由器 4、为两台pc机配置ip地址子网掩码和网关 5、测试连通性 总…

华为交换机RRPP单环配置

华为交换机RRPP单环配置 rrpp相关概念&#xff08;取自华为官方文档&#xff09; 控制VLAN&#xff08;Control VLAN&#xff09;和数据VLAN&#xff08;Data VLAN&#xff09; 控制VLAN是相对于数据VLAN来说的。在RRPP域中&#xff0c;控制VLAN只用来传递RRPP协议报文。与控…

VRRP(12)

VRRP VRRP的作用 提供了局域网上的设备备份机制。VRRP是一种容错协议&#xff0c;它保证当主机的下一跳路由器坏掉时&#xff0c;可以及时由另一台路由器来代替&#xff0c;从而保证通讯的连续性和可靠性。 VRRP工作时会在网络中加入一个含有虚拟IP和虚拟MAC地址的虚拟路由器…

RIP

路由信息协议 RIP(Routing Information Protocol) 是内部网关协议 IGP中最先得到广泛使用的协议。RIP 是一种分布式的基于距离向量的路由选择协议。 RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。 RIP是应用层协议。使用UDP数据报传送。…

RRPP 演示实例

RRPP 概念&#xff1a;快速环网保护协议RRPP&#xff08;Rapid Ring Protection Protocol&#xff09;是一个专门应用于以太网环的链路层协议。它在以太网环完整时能够防止数据环路引起的广播风暴&#xff0c;而当以太网环上一条链路断开时能迅速启用备份链路恢复环网上各个节点…

H3C交换机RRPP配置

配置Device A # 创建VLAN 2&#xff5e;30&#xff0c;将这些VLAN都映射到MSTI 1上&#xff0c;并激活MST域的配置。 <DeviceA> system-view[DeviceA] vlan 2 to 30Please wait… Done.[DeviceA] stp region-configuration[DeviceA-mst-region] instance 1 vlan 2 to 3…

H3C RRPP实验

实验拓扑 H3C RRPP实验 图 1-1 注&#xff1a;如无特别说明&#xff0c;描述中的 R1 或 SW1 对应拓扑中设备名称末尾数字为 1 的设备&#xff0c;R2 或 SW2 对应拓扑中设备名称末尾数字为 2 的设备&#xff0c;以此类推&#xff1b;另外&#xff0c;同一网段中&#xff0c;IP …

RRPP 实验

实验拓扑 注&#xff1a;如无特别说明&#xff0c;描述中的 R1 或 SW1 对应拓扑中设备名称末尾数字为 1 的设备&#xff0c;R2 或 SW2 对应拓扑中设备名称末尾数字为 2 的设备&#xff0c;以此类推&#xff1b;另外&#xff0c;同一网段中&#xff0c;IP 地址的主机位为其设备编…

VRRP——VRRP讲解

目录 VRRP作用 VRRP的基本概念 基本信息 优先级 主备关系 VRRP报文 VRRP定时器 VRRP状态 VRRP版本 VRRP基本工作原理 VRRP高级特性 VRRP作用 VRRP为虚拟路由冗余协议 将多个设备接口划分在一起&#xff0c;称为一个备份组&#xff08;有主备关系---优先级高的为主&am…

以太网环网的快速环保护协议:RRPP,配有专属案例,爽歪歪!

你好&#xff0c;这里是网络技术联盟站。 今天给大家带来RRPP协议的介绍以及实验配置&#xff0c;希望对大家有所帮助&#xff01; 文章目录 什么是RRPP协议RRPP协议的功能RRPP协议的优势RRPP配置案例背景介绍网络拓扑RRPP配置步骤步骤 1&#xff1a;启用RRPP协议步骤 2&#…