WPF UI 界面布局 魔术棒 文字笔记识别 技能提升 布局功能扩展与自定义 继承Panel的对象,测量与排列 系列七
应用开发第一步
功能分类:页面上的功能区域划分。。。。需求分析 业务逻辑 数据流 功能模块 UI/UX 编码 测试 发布 功能开发与布局
不用显式的方式设定元素的尺寸 不使用屏幕坐标来指定位置
Grid
功能最强大,布局最灵活的容器
主要属性配置:ColumnDefinitions(ColumnDefinition)、RowDefinitions(RowDefinition)
ShowGridLines、IsSharedSizeScope(SharedSizeGroup)
给子项控件使用:Grid.Row Grid.Column
使用场景:广泛,不知道用什么布局,就用Grid,意外(WrapPanel)
StackPanel
最简单的布局容器之一
主要属性配置:Orientation-调整排列方向、FlowDirection
使用场景:图文并显、工具栏
可以Grid代替

WrapPanel
唯一一个不能被Grid替代的布局控件,水平方向排列,过程中当前子项出界了,进行折行
主要属性配置:Orientation-调整排列方向
使用场景:桌面式图标排列、搜索历史关键词排列

DockPanel
通过设置Dock停靠进行布局
主要属性配置:LastChildFill、DockPanel.Dock
使用场景:应用的主窗口布局(标题栏、状态栏、工具栏、菜单栏)

UniformGrid
另一种行列风格布局,自动生成统一一致的行列
主要属性配置:Columns、Rows 指定的是当前区域均分多少行和列,不存在指定行高和列宽
使用场景:9宫格的功能区域、图表


Canvas
通过精确坐标定位放置子元素
主要属性配置:Canvas.Left、Top、Right、Bottom
使用场景:组态、组件封装(仪表)

InkCanvas
支持任意笔画输入的画布组件
主要属性配置:
使用场景:

画笔

橡皮擦

魔术棒

其他 文字笔记识别
WPF UI InkCanvas 导师演示画板 演示 笔记 画笔 识别-CSDN博客
Border
最基础的装饰控件
主要属性配置:
使用场景:
技能提升 布局功能扩展与自定义
功能需求: 继承Panel的对象,测量与排列

后端
protected override Size MeasureOverride(Size availableSize)
{double total_y = 0;foreach (UIElement item in this.InternalChildren){item.Measure(availableSize);total_y += item.DesiredSize.Height;}return new Size(availableSize.Width, total_y);
}protected override Size ArrangeOverride(Size finalSize)
{double offset_y = 0;foreach (UIElement item in this.InternalChildren){item.Arrange(new Rect(0, offset_y, finalSize.Width, item.DesiredSize.Height));offset_y += item.DesiredSize.Height;}return base.ArrangeOverride(finalSize);
}

扩展

public int ColumnSpace { get; set; } = 0;
public int RowSpace { get; set; } = 0;protected override Size MeasureOverride(Size availableSize)
{//var perHeight = availableSize.Height / Math.Ceiling(this.InternalChildren.Count * 0.1 / 3);var perWidth = (availableSize.Width - ColumnSpace * 2) / 3;double total_y = 0;foreach (UIElement item in this.InternalChildren){item.Measure(new Size(perWidth, availableSize.Height));total_y = item.DesiredSize.Height;}return new Size(availableSize.Width, total_y);
}protected override Size ArrangeOverride(Size finalSize)
{double offset_y = 0;double offset_x = 0;var perWidth = (finalSize.Width - ColumnSpace * 2) / 3;for (int i = 1; i < this.InternalChildren.Count + 1; i++){UIElement item = this.InternalChildren[i - 1];item.Arrange(new Rect(offset_x, offset_y, perWidth, item.DesiredSize.Height));if (i % 3 == 0){offset_x = 0;offset_y += item.DesiredSize.Height + RowSpace;}elseoffset_x += perWidth + ColumnSpace;}return base.ArrangeOverride(finalSize);
}
C# WPF 3D 数据孪生 系列六-CSDN博客
WPF 3D绘图 点云 系列五-CSDN博客
WPF UI 3D 多轴 机械臂 stl 模型UI交互-CSDN博客
WPF UI 3D 基本概念 点线三角面 相机对象 材质对象与贴图 3D地球 光源 变形处理 动作交互 辅助交互插件 系列三-CSDN博客
相关文章:
WPF UI 界面布局 魔术棒 文字笔记识别 技能提升 布局功能扩展与自定义 继承Panel的对象,测量与排列 系列七
应用开发第一步 功能分类:页面上的功能区域划分。。。。需求分析 业务逻辑 数据流 功能模块 UI/UX 编码 测试 发布 功能开发与布局 不用显式的方式设定元素的尺寸 不使用屏幕坐标来指定位置 Grid 功能最强大,布局最灵活的容器…...
文件格式是.pb应该怎么查看?
文件格式为.pb的文件,通常是Google Protocol Buffers(简称PB)序列化后的二进制文件。要查看.pb文件的内容,可以采用以下方法: 1. **直接打开(不推荐)**: - 直接打开.pb文件通常会显示…...
android2024 gradle8 Processor和ksp两种编译时注解实现
android编译时注解,老生常谈,外面的例子都是bindView,脑壳看疼了,自己学习和编写下。 而且现在已经进化到kotlin2.0,google也逐渐放弃kapt,进入维护状态。所以要好好看看本贴。 参考我的工程: h…...
elementui的table的@selection-change阻止事件改变
说明: 最近有个不想说的(xxx)业务,在表格勾选每一行的时候要触发一系列查询功能,查询失败还要把那个勾勾回退。真实蛋疼!表格勾选的默认selection-change是change事件,一般change事件是在完成之…...
空间数据采集与管理:为什么选择ArcGISPro和Python?
你还在为找不到合适的数据而苦恼吗?你还在面对大量数据束手无策,不知如何处理吗?对于从事生产和科研的人员来说,空间数据的采集与管理是地理信息系统(GIS)和空间分析领域的关键环节。通过准确高效地采集和管…...
案例精选 | 聚铭综合日志分析系统为江苏省电子口岸构建高效安全的贸易生态
江苏省电子口岸有限公司,成立于2009年,由江苏省贸促会携手南京海关、江苏检验检疫局及江苏海事局等部门共同出资组建。公司承载着推动江苏乃至长三角地区国际贸易便利化的重大使命,致力于打造一个集先进性、创新性、高效性于一体的电子口岸综…...
TCP粘包
目录 TCP粘包产生的原因 TCP粘包的现象 TCP粘包的解决方案 TCP粘包是指在TCP通信中,发送方发送的多个数据包在接收方被错误地合并成一个数据包的现象。tcp粘包在发送端和接收端都有可能发生。发送端粘包:发送端需要等缓冲区满才发送出去,造成粘包。接收方粘包:接收方不及…...
数据泄露态势(2024年5月)
监控说明:以下数据由零零信安0.zone安全开源情报系统提供,该系统监控范围包括约10万个明网、深网、暗网、匿名社交社群威胁源。在进行抽样事件分析时,涉及到我国的数据不会选取任何政府、安全与公共事务的事件进行分析。如遇到影响较大的伪造…...
二手闲置平台小程序的设计
管理员账户功能包括:系统首页,个人中心,用户管理,卖家管理,商品分类管理,商品信息管理,商品购买管理,商品配送管理 微信端账号功能包括:系统首页,商品信息&a…...
协程libgo的使用
c开源协程库libgo介绍及使用-CSDN博客 libgo库的github地址:GitHub - yyzybb537/libgo: Go-style concurrency in C11 使用libgo编写并行程序,即可以像golang一样开发迅速且逻辑简洁,又有C原生的性能优势。它的特点有: 1.提供go…...
什么叫低频晶振?低频晶振最低频率能达到多少?低频晶振封装尺寸有哪些?
低频晶振指的是那些工作在较低频率范围内的晶体振荡器,通常这类振荡器的标称频率低于8MHz。这些晶振在各种电子设备中都有应用,尤其是在那些需要精确但不需要高频振荡的应用场景中,比如实时时钟(RTC)、低速串行通信接口(如UART、IC等)、以及一…...
Splunk Enterprise 任意文件读取漏洞(CVE-2024-36991)
文章目录 前言漏洞描述影响版本漏洞复现POC批量检测-nuclei脚本 修复建议 前言 Splunk Enterprise 是一款强大的机器数据管理和分析平台,能够实时收集、索引、搜索、分析和可视化来自各种数据源的日志和数据,帮助企业提升运营效率、增强安全性和优化业务…...
零基础STM32单片机编程入门(九)IIC总线详解及EEPROM实战含源码视频
文章目录 一.概要二.IIC总线基本概念1.总体特征2.通讯流程 三.EEPROM介绍1.M24C08基本介绍2.向M24C08写一个字节时序图3.从M24C08读一个字节时序图 四.GPIO模拟IIC驱动M24C08读写五.CubeMX工程源代码下载六.讲解视频链接地址七.小结 一.概要 IIC(Inter-Integrated …...
数据库的操作
【一】库的增删改查 【0】导入数据文件 source D:\bjpowernode.sql 【1】创建数据库 语法: create database [if not exists] 数据库名 [character set 编码字符集]; create databases db1; # 设置库的默认编码 create databases db1 charsetgbk; 【2】查看数据…...
常见的认证方式
认证机制是一种用户确定用户身份或者权限的安全措施,比如用来验证某个用户是否有权限访问一个资源,如果认证通过,用户就可以成功访问,反之则会访问失败 常见的认证方式有四种,分别是 Basic、Digest、OAuth 和 Bearer …...
DolphinScheduler部署安装or基础介绍(一)
DolphinScheduler概述 Apache DolphinScheduler是一个分布式、易扩展的可视化DAG工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用 DolphinScheduler核心架构 DolphinScheduler的主要角色如下: Ma…...
Failed building wheel for pyaudio Running setup.py clean for pyaudio
从错误信息来看,问题出在 pyaudio 包的构建过程中。具体来说,缺少 portaudio.h 头文件,这通常是因为系统上没有安装 portaudio 库。 以下是解决此问题的步骤: 安装系统依赖: 在大多数基于 Debian 的系统(如…...
【ARMv8/v9 GIC- 700 系列 1 -- Programmers model for GIC-700】
请阅读【ARM GICv3/v4 实战学习 】 文章目录 GIC-700 Programmers model寄存器实现和访问模式接口宽度和数据格式访问类型安全寄存器访问地址映射和页面GIC-700 Register map pagesSummaryGIC-700 Programmers model GIC-700是ARM的一种通用中断控制器,它遵循GICv3和GICv4架构…...
exel带单位求和,统计元素个数
如果exel表格中,如果数据有单位,无法直接用 自动求和 直接求和。如下图所示,求和结果为0,显然不是我们想要的。 用下面的公式求和,单位不是“个”的时候记得替换单位。统计范围不是“C1:C7”也记得换一下啊!…...
JavaScript里方括号[]的使用
我们知道可用方括号来表示数组或者JSON对象的属性值,其实在特定场合,方括号还有妙用的。 比如我有数据源是一组JSON,其中有一个属性是时间字符串,我想对时间的小时、星期、日、月分别进行处理。每条JSON都各自生成一条新的JSON&am…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...
python打卡第47天
昨天代码中注意力热图的部分顺移至今天 知识点回顾: 热力图 作业:对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图,展示模…...
6.9本日总结
一、英语 复习默写list11list18,订正07年第3篇阅读 二、数学 学习线代第一讲,写15讲课后题 三、408 学习计组第二章,写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语:复习l默写sit12list17&#…...
多模态大语言模型arxiv论文略读(112)
Assessing Modality Bias in Video Question Answering Benchmarks with Multimodal Large Language Models ➡️ 论文标题:Assessing Modality Bias in Video Question Answering Benchmarks with Multimodal Large Language Models ➡️ 论文作者:Jea…...
