WPF 控件专题 WrapPanel 控件详解

article/2025/10/25 18:47:47

1、WrapPanel 介绍

  官方释义:WrapPanel(环绕面板):按从左到右的顺序位置定位子元素,在包含框的边缘处将内容切换到下一行。 后续排序按照从上至下或从右至左的顺序进行,具体取决于 Orientation 属性的值。

    简单解析:WrapPanel 用于把子控件,以水平或者垂直方向排列,当空间不足时就会自动切换到下一行。适合于需要水平或者垂直排列控件且能自动换行的情况。

    水平方向排列时,每一行所有子控件的高度都被统一成固定的值,这个值由最高的那个决定;每一列垂直方向排列时,所有子控件的宽度都被统一成固定的值,这个值由最宽的那个决定。

**************************************************************************************************************

2、WrapPanel 的几个常用的属性介绍

    Orientation:获取或设置一个值,该值指定子内容的排列方向,默认是按水平方向排列;

    Background:获取或设置用于填充 Brush 的边框之间的区域的 Panel;

    Width/Height:宽度和高度;

    HorizontalAlignment:获取或设置在父元素(如 Panel 或项控件)中组合此元素时所应用的水平对齐特征;

    VerticalAlignment:获取或设置在父元素(如面板或项控件)中组合此元素时所应用的垂直对齐特征;

    Margin    :获取或设置元素的外边距;

    Opacity:透明度;        Name:元素的标识名称;        IsEnabled:使能,是否可用

    ItemHeight/ItemWidth:获取或设置一个值,该值指定 WrapPanel 中所含全部项的高度/宽度;

**************************************************************************************************************

3、具体示例

   代码示例一

<WrapPanel Margin="10"><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="LightYellow"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Green"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="LightYellow"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Green"/>
</WrapPanel><!--更改子元素大小,当宽度不足,则会显示到下一行,或者往后补全-->
<WrapPanel Margin="10"><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="LightYellow"/><Border Margin="2" Width="250" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Green"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="LightYellow"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Green"/>
</WrapPanel>

代码示例二:使用垂直显示,设置子元素的宽高和水平垂直方向为居中显示,

<!--设置为垂直显示-->
<WrapPanel Margin="10" Orientation="Vertical" HorizontalAlignment="Center"VerticalAlignment="Center" ItemHeight="100" ItemWidth="210"><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/>
</WrapPanel><!--垂直显示、子元素设定固定宽高、以及水平居中、垂直居中显示-->
<WrapPanel Margin="10" Orientation="Vertical" HorizontalAlignment="Center"VerticalAlignment="Center" ItemHeight="180" ItemWidth="210"><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="LightYellow"/><Border Margin="2" Width="250" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Green"/><Border Margin="2" Width="250" Height="250" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/><Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="LightYellow"/>
</WrapPanel>

**************************************************************************************************************

4、效果图

示例代码一效果图,左图为固定大小效果图;有图为空间不足,切到下一行显示效果图

      

 代码示例二效果图,左侧为垂直显示效果,右侧为垂直,固定子元素宽高效果图

    

**************************************************************************************************************

5、总结和扩展

    WrapPanel 也是一种常用的布局控件,配合其他布局控件使用,会使得界面布局更合理更美观。

**************************************************************************************************************


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

相关文章

UI Automation编程辅助工具Inspect的下载和使用

UIAutomation微软提供的UI自动化库&#xff0c;主要用AutomationElement类来表示UI 自动化目录树中的一个UI自动化元素&#xff0c;.NET Windows的窗体应用程序和WPF应用程序。 Inspect是一款类似于SPY的界面捕捉工具。外观如下&#xff1a; 下载地址&#xff1a; Inspect.zip …

docker inspect --format 详解

docker inspect --format 文章目录 docker inspect --format1. 什么是模板2. Go模板语法3. 变量3.1 系统变量 {{.}}3.2 自定义变量3.3 遍历&#xff08;循环&#xff09;&#xff1a;range 4. index5. 判断5.1 not5.2 or5.3 判断条件5.4 判断示例 6. 打印信息9. 管道10. 内置函…

android studio inspect code,Android Studio使用inspect code删除 unused import

项目经常需要从别的项目复制一些文件过来&#xff0c;但是经常出现大片的导包unused import&#xff0c;但是我用自动导包并没有效果&#xff0c;必须把这些错误的导包手动删除才可以导入正确的包&#xff0c;虽然文件不多&#xff0c;手动删除是可以完成的&#xff0c;但是作为…

Halcon Variable Inspect 安装失败

这里写自定义目录标题 Halcon Variable Inspect 安装失败 Halcon Variable Inspect 安装失败 在 Visual Studio 2022 环境下安装 HALCON2105ProgressVariableInspect.vsix 失败。 点击 “View Install Log” 查看日志。 主要问题在运行vsix文件时&#xff0c;它会监控然后运行…

docker inspect 查看部分数据

1. 问题描述 使用docker inspect命令可查看 docker 镜像/容器/数据卷 等的具体配置docker inspect命令格式docker inspect [参数] 容器名/容器ID/镜像名/镜像ID/数据卷名...如果不加参数&#xff0c;则输出很多&#xff0c;难以精确查看真正关心的内容 如果使用grep 表达式&am…

【网络教程】如何安装inspect.exe

文章目录 安装 安装 Inspect&#xff08;Inspect.exe&#xff09;是一个基于Windows的工具&#xff0c;允许您选择任何UI元素并查看元素的可访问性数据。您可以查看Microsoft UI自动化属性和控制模式&#xff0c;以及Microsoft活动辅助功能属性。Inspect还允许您测试UI自动化树…

inspect.exe安装使用

官网下载 https://developer.microsoft.com/zh-cn/windows/downloads/windows-sdk/ 官网教程 https://learn.microsoft.com/zh-cn/windows/win32/winauto/inspect-objects 要求 系统要求 Windows SDK 具有以下最低系统要求&#xff1a; 支持的操作系统 Windows 10版本 150…

python中inspect模块用法详解

获取函数签名对象。函数签名包含了一个函数的信息&#xff0c;包括函数名、它的参数类型、它所在的类和名称空间及其他信息&#xff09;。 inspect模块主要提供了四种用处&#xff1a; 对是否是模块、框架、函数进行类型检查获取源码获取类或者函数的参数信息解析堆栈 1、对…

docker inspect

docker inspect 命令用于获取有关 Docker 容器、镜像、网络等的详细信息。它提供了关于指定对象的元数据和配置的完整视图&#xff0c;包括运行状态、网络设置、卷挂载、环境变量等。 以下是一些常见的字段和属性&#xff0c;可以根据需要选择其中一些或全部列出&#xff1a; …

UI自动化辅助工具Inspect

了解更多访问&#xff1a;windows应用程序GUI自动化控制 Inspect&#xff08;Inspect.exe&#xff09;是一个基于Windows的工具&#xff0c;允许您选择任何UI元素并查看元素的可访问性数据。您可以查看Microsoft UI自动化属性和控制模式&#xff0c;以及Microsoft活动辅助功能…

mysql数据库基础管理--数据库权限表

mysql数据库通过权限表实现对mysql数据库的访问&#xff0c;权限表存放在mysql数据库中&#xff0c;有脚本 mysql_install_db初始化。 存储账户权限表主要 USER,DB,HOST,TABLES_PRIV,COLUMNS_PRIV和PROCS_PRIV. mysql.USER 记录允许连接到数据库的用户信息&#xff0c;里面…

1、user权限表详解

MySQL 在安装时会自动创建一个名为 mysql 的数据库&#xff0c;mysql 数据库中存储的都是用户权限表。用户登录以后&#xff0c;MySQL 会根据这些权限表的内容为每个用户赋予相应的权限。 user 表是 MySQL 中最重要的一个权限表&#xff0c;用来记录允许连接到服务器的账号信息…

MySQL中用户权限、库权限、表权限的控制

MySQL中用户权限、库权限、表权限的控制 在开发中&#xff0c;除了可以在脚本代码中控制开发者对MySQL数据库数据表的权限&#xff0c;还可以在mysql层面进行控制。 对mysql的权限的控制可以大致分为三个层面&#xff1a;①连接上允不允许&#xff08;是否能登录到mysql服务器…

数据库表设计1:用户权限管理

前言&#xff1a;权限管理是所有后台系统的都会涉及的一个重要组成部分&#xff0c;主要目的是对不同用户访问资源进行权限的控制&#xff0c;避免因权限控制缺失或操作不当引发的风险问题&#xff0c;如操作错误&#xff0c;隐私数据泄露等问题。 1、RBAC简介 RBAC&#xff0…

用户、角色、权限表的关系(mysql)

一&#xff0c;各个表格 1、用户表 CREATE TABLE t_user ( id varchar(40) NOT NULL, username varchar(20) NOT NULL, PRIMARY KEY (id) ) 2、角色表 CREATE TABLE t_role ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(20) NOT NULL, description varchar(255) DEFAUL…

MySQL 权限管理表设计

阅读目录 MySQL 权限管理表设计创建三张主表三张表添加数据创建两张关系表两张表添加数据关联查询1 查询刘德华的角色2 查询苹果游客这个角色对应的用户是谁?3 查询总管理员的权限有哪些?4 查询苹果浏览权限对应的角色有哪些?5 查询刘德华的权限有哪些?6 查询杨幂的权限有哪…

权限管理数据表设计

权限管理数据表的设计 需要五张表&#xff0c;分别为&#xff08;此处以MySQL为例&#xff09; 用户表 t_user 角色表t_role权限表t_permission用户角色表t_user_rolet角色权限表t_role_permission 用户拥有什么角色&#xff0c;这个角色拥有什么权限 用户表&#xff08;t_u…

用户权限设置5张表

--权限表&#xff08;资源和权限合并&#xff09; CREATE TABLE sys_permission ( id number(20) PRIMARY KEY NOT NULL,-- COMMENT 主键, name varchar2(128) NOT NULL , --COMMENT 资源名称, type varchar2(32) NOT NULL, -- COMMENT 资源类型&#xff1a;men…

MySQL权限表

一、权限系统概述 安装MySQL时自动安装一个名为mysql的数据库。mysql数据库下面存储的都是权限表。 用户登录以后&#xff0c;MySQL数据库系统会根据这些权限表的内容为每个用户赋予相应的权限。这些权限表中最重要的是user表、db表和host表&#xff0c;除此之外&#xff0c;还…

权限管理用到的表

前言&#xff1a; 一个成熟的系统系统是离不开权限管理的&#xff0c;说权限管理就必须要说下权限管理经典的五张表了&#xff0c;无论是自定义的权限管理框架&#xff0c;还是流行的Shiro、SpringSecurity等权限管理框架都是离不开这五张表的&#xff0c;哪五张表呢&#xff0…