【上位机——WPF】布局控件

布局控件

  • 常用布局控件
  • Panel基类
  • Grid(网格)
  • UniformGrid(均匀分布)
  • StackPanel(堆积面板)
  • WrapPanel(换行面板)
  • DockerPanel(停靠面板)
  • Canvas(画布布局)
  • Border(边框)
  • GridSplitter(分割窗口)

常用布局控件

  1. Grid:网格,根据自定义行和列来设置控件的布局
  2. StackPanel:栈式面板,包含的元素在竖直或水平方向排成一条直线
  3. WrapPanel:自动折行面板,包含的元素在排满一行后,自动换行
  4. DockPanel:泊靠式面板,内部的元素可以选择泊靠方向
  5. UniformGrid:网格,UniformGrid就是Grid的简化版,每个单元格的大小相同
  6. Canvas:画布,内部元素根据像素为单位绝对坐标进行定位。
  7. Border:装饰的控件,此控件用于绘制边框及背景,在Border中只能有一个子控件

这里除了Border控件,其他控件都继承于Panel基类。

Panel基类

所有Panel元素都支持FrameworkElement定义的基本大小调整和定位属性,包括Height、Width、HorizontalAlignment、VerticalAlignment、Margin和LayoutTransform。Panel公开对了解和使用布局至关重要的其他属性。Background属性用于借助Brush填充派生面板元素的边界之间的区域。Children表示组成Panel的子元素集合。InternalChildren表示Children集合的内容以及由数据绑定生成的成员。两者均由父Panel内承载的子元素的UIElementCollection组成。

Panel提供了附加属性,ZIndex。假如一个单行单列的Grid布局控件中有两个Button,正常情况下,这两个Button都会以撑满Grid中,那么到底哪一个Button在上面,哪一个在下面。就看这两个Button的Panel.ZIndex附加属性的值,值越大的在上面,而值较小的那个Button将被上面的Button遮盖,从而在视觉上,用户只能看到一个Button。

    <Grid Background="AliceBlue" PreviewMouseUp="Grid_PreviewMouseUp"><Button Panel.ZIndex="2" Content="按钮1" Width="200"  Height="30"/><Button Panel.ZIndex="0" Content="按钮2" Width="200" Height="30"/></Grid>

Grid(网格)

Grid控件是WPF中所有布局控件中最好用的一个,因为它是自适应屏幕的宽度,最关键的一点是,它在呈现时,其ActuaWidth实际宽度和ActualHeight实际高度会有一个计算值,我们在业务开发中,有时候要根据父控件的实际宽度和高度来计算子控件的呈现位置和大小。

<Window x:Class="WpfApp1.MyGrid"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"xmlns:local="clr-namespace:WpfApp1"mc:Ignorable="d"Title="MyGrid" Height="450" Width="800"><!--展示线条--><Grid ShowGridLines="True"><!--三行--><Grid.RowDefinitions><RowDefinition Height="*" /> <!--Height="100" 固定高度--><RowDefinition Height="2*"/> <!--Height="2*" 等比例的高度--><RowDefinition Height="2*"/> <!--Height="Auto" 跟随文本的高度--></Grid.RowDefinitions><!--两列--><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition Width="Auto"/> <!--Width="Auto" 跟随文本的宽度--></Grid.ColumnDefinitions><!--第一行第一列--><!--Grid.RowSpan="2" 合并单元格行--><TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Grid.RowSpan="2" Text="文本1" Grid.Row="0" Grid.Column="0" FontSize="30"/><!--第一行第二列--><TextBlock Text="文本2" Grid.Row="0" Grid.Column="1" FontSize="30"/><!--<TextBlock Text="文本3" Grid.Row="1" Grid.Column="0" FontSize="30"/>--><TextBlock Text="文本4" Grid.Row="1" Grid.Column="1" FontSize="30"/><!--Grid.ColumnSpan="2" 合并单元格列--><TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Grid.ColumnSpan="2"Text="文本5" Grid.Row="2" Grid.Column="0" FontSize="30"/><!--<TextBlock Text="文本6" Grid.Row="2" Grid.Column="1" FontSize="30"/>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/82103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打卡Day33

简单的神经网络 数据的准备 # 仍然用4特征&#xff0c;3分类的鸢尾花数据集作为我们今天的数据集 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split import numpy as np# 加载鸢尾花数据集 iris load_iris() X iris.data # …

python开发环境管理和包管理

在 Python 开发中&#xff0c;环境管理 和 包管理 是两个非常重要的概念。它们帮助开发者&#xff1a; 这里写目录标题 一、什么是 Python 环境管理&#xff1f;二、什么是 Python 包管理&#xff1f;三、常见文件说明&#xff08;用于包管理和环境配置&#xff09;四、典型流程…

Mybatis面向接口编程

添加与Mapper接口的映射 <!--UserMapper.xml--> <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> …

GMP模型入门

go的并发实现采用的是M:N的线程模型&#xff0c;落地就是gmp模型。 M:N模型如下图&#xff1a; gmp模型如下图&#xff1a; --- Go 的 GMP 模型是其 高效并发调度机制的核心。GMP 代表&#xff1a; G&#xff1a;Goroutine&#xff08;用户态线程&#xff09; M&#xff1a;…

达梦数据库-报错-01-[-3205]:全文索引词库加载出错

目录 一、环境信息 二、说点什么 三、模拟实验 1、前台启动数据库 2、重建全文索引报错 3、日志信息 4、查找SYSWORD.UTF8.LIB 5、想一想加做一做 6、重启数据库 7、重建全文索引 8、总结 一、环境信息 名称值CPU12th Gen Intel(R) Core(TM) i7-12700H操作系统CentO…

经典密码学和现代密码学的结构及其主要区别(1)维吉尼亚密码—附py代码

Vigenre cipher 维吉尼亚密码 维吉尼亚密码由布莱斯德维吉尼亚在 16 世纪发明&#xff0c;是凯撒密码的一个更复杂的扩展。它是一种多字母替换密码&#xff0c;使用一个关键字来确定明文中不同字母的多个移位值。 与凯撒密码不同&#xff0c;凯撒密码对所有字母都有固定的偏移…

Ubuntu部署私有Gitlab

这个东西安装其实挺简单的&#xff0c;但是因为我这边迁移了数据目录和使用自己安装的 nginx 代理还是踩了几个坑&#xff0c;所以大家可以注意下 先看下安装 # 先安装必要组件 sudo apt update sudo apt install -y curl openssh-server ca-certificates tzdata perl# 添加gi…

【JVM 02-JVM内存结构之-程序计数器】

程序计数器 笔记记录 1. 定义2. 作用3. 特点4. 拓展理解4.1 PC寄存器存储字节码指令地址有什么用&#xff1f;4.2 PC寄存器为什么被设定为线程私有的&#xff1f;4.3 为什么执行native方法时&#xff0c;是undefined&#xff1f; 学习资料来源-b站黑马JVM& 尚硅谷JVM精讲与…

【node.js】数据库与存储

个人主页&#xff1a;Guiat 归属专栏&#xff1a;node.js 文章目录 1. 数据库概述1.1 数据库在Node.js中的作用1.2 Node.js支持的数据库类型 2. 关系型数据库集成2.1 MySQL与Node.js2.1.1 安装MySQL驱动2.1.2 建立连接2.1.3 执行CRUD操作 2.2 PostgreSQL与Node.js2.2.1 安装pg驱…

Windows10和Ubuntu24.04安装Dify

1、win10上安装docker不顺利 参考&#xff1a;Dify的安装_dify安装-CSDN博客等资料&#xff0c;Dify依赖Docker运行&#xff0c;在Win10上安装Docker&#xff0c;先安装wsl。在PowerShell(管理员)中输入&#xff1a; wsl --install 或显示“找不到指定文件”&#xff0c;或显示…

电网绝缘子及破损、闪络缺陷YOLO数据集

概述 电网绝缘子及破损、闪络缺陷YOLO数据集​​&#xff0c;专为输电线路缺陷检测任务设计&#xff0c;可帮助开发者快速构建智能化识别模型。 主要内容 ​​数据集规模​​ 训练集&#xff1a;2004张标注图像验证集&#xff1a;907张标注图像所有数据均经过严格筛选与标注&…

5.2.4 wpf中MultiBinding的使用方法

在 WPF 中,MultiBinding 允许将多个绑定(Binding)组合成一个逻辑结果,并通过一个转换器(IMultiValueConverter)处理这些值,最终影响目标属性。以下是其核心用法和示例: 核心组件: MultiBinding:定义多个绑定源的集合。 IMultiValueConverter:实现逻…

基于SpringBoot+Vue的足球青训俱乐部管理后台系统的设计与开发

项目背景与概述 随着足球青训行业的快速发展&#xff0c;如何高效、规范地管理学员、教练以及课程等日常工作&#xff0c;成为了青训俱乐部运营的重要课题。为了提升俱乐部的管理效率与用户体验&#xff0c;基于 Spring Boot 和 Vue.js 开发了一个 足球青训俱乐部管理后台系统…

互联网大厂Java求职面试:云原生架构与AI应用集成解决方案

互联网大厂Java求职面试&#xff1a;云原生架构与AI应用集成解决方案 场景一&#xff1a;短视频与直播平台的高并发架构设计 面试官提问 面试官&#xff08;技术总监&#xff09;&#xff1a; 郑薪苦&#xff0c;你有处理过千万级用户同时在线的直播系统吗&#xff1f;如何设…

RK3588 Opencv-ffmpeg-rkmpp-rkrga编译与测试

RK3588 Opencv-ffmpeg-rkmpp-rkrga编译与测试 硬件背景说明编译环境准备1. 编译MPP(媒体处理平台)2. 编译RGA(图形加速库)3. 构建支持硬件加速的FFmpeg重要代码修改说明4. 验证安装5.FFmpeg转码测试OpenCV编译集成Python OpenCV+FFmpeg测试硬件背景说明 RK3588是瑞芯微推出…

解锁C++递归算法:从原理到实战

递归算法初相识 ** 在 C 的奇妙世界里&#xff0c;递归算法就像是一把神奇的钥匙&#xff0c;能够开启解决复杂问题的大门。那么&#xff0c;究竟什么是递归算法呢&#xff1f;简单来说&#xff0c;递归算法就是一种函数调用自身的编程技巧。当一个函数在其定义中直接或间接地…

vue2+webpack环境变量配置

第一步&#xff1a;创建3个环境变量文件 1、创建> 生产&#xff08;本地&#xff09;环境 .env.development # 开发环境 ENVdevelopment VUE_APP_MEDIA_BASE调后端请求的地址2、创建> 测试环境 .env.staging # 测试环境 ENVstaging VUE_APP_MEDIA_BASE调后端请求的地址…

【通用智能体】Intelligent Internet Agent (II-Agent):面向复杂网络任务的智能体系统深度解析

Intelligent Internet Agent &#xff08;II-Agent&#xff09;&#xff1a;面向复杂网络任务的智能体系统深度解析 一、系统架构与设计哲学1.1 核心架构设计1.2 技术创新点1.2.1 动态任务分配机制1.2.2 网络状态感知模块 二、系统架构解析2.1 完整工作流程2.2 性能指标对比 三…

力扣第450场周赛

Q1. 数位和等于下标的最小下标 给你一个整数数组 nums 。 返回满足 nums[i] 的数位和&#xff08;每一位数字相加求和&#xff09;等于 i 的 最小 下标 i 。 如果不存在满足要求的下标&#xff0c;返回 -1 。 示例 1&#xff1a; 输入&#xff1a;nums [1,3,2] 输出&#xff1…

【氮化镓】偏置对GaN HEMT 单粒子效应的影响

2025年5月19日,西安电子科技大学的Ling Lv等人在《IEEE Transactions on Electron Devices》期刊发表了题为《Single-Event Effects of AlGaN/GaN HEMTs Under Different Biases》的文章,基于实验和TCAD仿真模拟方法,研究了单粒子效应对关断状态、半开启状态和开启状态下AlG…