第二阶段WinForm-12:UI控件库

1_验证码与条形码

1.1_条码基础知识

条码:条码是由一组按一定编码规则排列的条、空符号组成,用以表示一定的字符、数字及符号组成的信息

1.2_一维码

(1)Code 128

Code 128 是一种密度很高的字母数字代码系统,可对其进行双向扫描。此代码系统可编码整个 128 ASCII 字符集以及四个非数据字符。采用 Code 128 代码系统的符号使用 11 个黑色或白色模块编码每个字符,并且每个符号包含一个校验和字符。

(2)UPC/EAN

UPC 是一种固定长度的纯数字代码系统,可对其进行双向扫描。UPC 符号的大小可变以适应各种打印流程,但代码在符号的高度大于其宽度时效果最佳。欧洲公司使用大体相当的 European Article Numbering (EAN) 系统

(3)Code 39

Code 39(也称为 USS Code 39 或 Code three of nine)是一种广泛使用的代码系统,专门针对非零售环境应用,可编码字母、数字以及“%”和“/”等特殊字符。使用 Code 39 代码系统的符号使用 5 个条码和 4 个空格(共计 9 个元素)来编码每个字符,并且 9 个元素中有 3 个始终为宽。此符号可包含用于进行错误检测的校验和字符

(4) Code 93

Code 93 所解码的字符与 Code 39 相同,但每个字符使用 9 个条码元素,而非 15 个

(5)Codabar

Codabar 是一种用于编码数字的较旧代码系统。

(6)Pharmacode

Pharmacode 在制药工业中用作包装控制系统。

(7)PDF417

PDF417 是堆叠的线性条码符号格式,主要用于包括运输、身份证和库存管理在内的多种应用。

(8)EAN.UCC Composite

启用此系统时,可解码复合代码(具有二维分量的一维代码)。可与 EAN.UCC 一起使用的一维代码包括 GS1 DataBar 和 Code 128。

(9)POSTNET

邮政数字编码技术 (POSTNET) 条码由美国邮政局发明,用来编码 ZIP 代码信息。采用 POSTNET 代码系统的条码使用 5 个长短不同的条码组合来编码每个数字字符。POSTNET 条码可包含 5 位数 ZIP 代码、5 位数 ZIP + 4 代码或 11 位数交货地点代码。此符号始终包含校验和字符。

(10)PLANET

PLANET 条码是 POSTNET 条码的逆反版本,在 POSTNET 代码系统使用长条码的地方使用短条码,在 POSTNET 代码系统使用短条码的地方使用长条码。美国邮政局使用 PLANET 条码来跟踪邮件。一个 PLANET 条码最多可有 12 位。

(11)4-State Postal

4-State 是由澳大利亚邮政局采用的字母数字代码系统。采用 4-State 代码系统的条码使用 4 个不同类的条码来编码每个字符,其中每个条码都有不同的名字和值。4-State 条码可采用以下三个不同结构中的一个来生成:37 个条码(标准)、52 个条码或 67 个条码。Barcode 工具支持 4-State 代码系统的 Australian、JapanPost、UPU 和 USPS 版本。

1.3_二维码

(1)二维码(2-Dimensional Bar Code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。它是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、宽度均记载着数据。二维条码有一维条码没有的“定位点”和“容错机制”。容错机制在即使没有辨识到全部的条码、或是说条码有污损时,也可以正确地还原条码上的信息。

(2)类别:二维条码的种类很多,不同的机构开发出的二维条码具有不同的结构以及编写、读取方法。常见的二维码有:PDF417码、QR码、汉信码、颜色条码、quick mark code、data matrix

                                

(3)定位标记:二维条码通常有特定的定位标记(如QR码为三个大的定位点),通过定位标记使读码机正确辨识进行解读,所以二维条码不管是从何种方向读取都可以被辨识。

(4)特性:二维条码比一维条码记载数据量更多。而且可以记载更复杂的数据,比如图片链接、网络链接等。


1.4_代码

(1)验证码:C#使用GDI+实现生成验证码_C#教程_脚本之家

(2)条形码:BarCode条形码基于C# GDI+ 的实现方法详解_C#教程_脚本之家;

C# GDI+实现BarCode条形码 - soliang - 博客园

2_WinForm UI控件库

2.1_Sunny UI

(1)SunnyUI 是一款基于 .NET 的 C# WinForm 开源控件库,它不仅提供了丰富的界面控件,还包含了工具类库、扩展类库以及多页面开发框架,致力于帮助开发者快速构建现代化、美观且功能强大的 Windows 桌面应用程序。

(2)核心表

特性维度说明
开发基础基于 .NET Framework 4.0+、.NET Core 3.1、.NET 5、.NET 6, 7, 8 等
界面风格扁平化(参考 Element、DotNetBar 设计风格)
开源协议GPL-3.0
控件数量提供超过 70 个 常用控件
主题支持内置 11 种 Element 风格主题3 种 DotNetBar 主题以及其他主题,支持自定义
国际化支持多语言(默认中文)
触屏优化专为触摸操作进行了优化

(3)主要特点

  • 丰富的控件库:提供了大量重写的 WinForm 控件,如按钮、文本框、下拉框、数据表格、树形视图、选项卡、导航栏等,还有工业仪表控件(如仪表盘、温度计等)和数据图表控件(如折线图、饼图、柱状图等),满足各种业务场景。

  • 强大的主题与样式系统:内置了多达11种以上的 Element 风格主题以及其他主题,你可以通过 UIStyleManager 组件轻松切换全局主题或为单个控件设置样式,并且支持自定义主题颜色

  • 多页面应用开发框架:提供了一套类似 Web 开发中单页应用(SPA)的多页面框架,可以非常方便地在一个窗体内容区域内动态加载和切换多个页面(UIPage),简化复杂应用的开发。

  • 国际化与本地化支持:控件默认使用中文,同时提供了多语言接口(如 UILocalize 类),可以方便地将界面切换为英文等其他语言,适合开发面向国际市场的应用。

  • 字体图标集成:集成了 FontAwesomeElegantIcons 两套流行的字体图标库,开发者可以直接在控件中使用这些矢量图标,无需到处寻找图片资源,使得界面更加精简和专业。

  • 性能优化:控件库在开发过程中注重性能,力求在提供丰富视觉效果的同时保证应用的流畅运行。

(4)使用:

  • 通过 NuGet 安装(推荐)在 NuGet 包管理器中搜索 "SunnyUI" 并安装。

  • 手动引用 DLL:从项目的发布页面(如 Gitee 或 GitHub)下载编译好的 DLL 文件,然后在你的项目中添加引用。(注意引用的时候VS2022有bug,会卡死,需要不断点击)

  • 引用源码项目:如果你希望深入了解或进行自定义修改,可以克隆或下载源码,然后将其作为项目直接添加到你的解决方案中引用。(已下载:D:\上位机\扩展\SunnyUI)

(5)官方资源地址

  • Gitee(码云)主页(主要仓库):https://gitee.com/yhuse/SunnyUI

  • GitHub 主页:GitHub - yhuse/SunnyUI: SunnyUI.NET 是基于.NET Framework 4.0+、.NET6、.NET8、.NET9 框架的 C# WinForm UI、开源控件库、工具类库、扩展类库、多页面开发框架。

  • 官方文档和Wiki:[文档预览 - Gitee.com] (详细的安装指南、控件使用说明和示例)

2.2_HZHControls

(1)HZHControls 是一个基于 .NET Framework 4.0(也支持更高版本)的 C# WinForms 开源控件库。它致力于提供美观、现代化且触屏友好的用户界面组件,让你能快速构建出具有 Web 风格和扁平化设计感的桌面应用程序。

(2)核心表

特性维度说明
开发基础基于 .NET Framework 4.0+,完全原生开发,不依赖第三方控件
界面风格扁平化类Web风格,追求美观与现代感
触屏支持优化了对触屏的操作支持,适合在触摸设备上使用
授权方式个人学习免费商业应用需授权(价格相对较低)
开源协议基于 GPL-3.0 协议
技术支持提供帮助文档、技术支持,有官方交流社区(如QQ群)

(3)主要特点

  • 丰富多样的控件集合:提供了200多个控件、窗体和组件,涵盖了常规开发中的大多数场景(如各种按钮、表单控件、导航、列表、表格等),甚至还包含了许多工业风格的控件(如仪表盘、管道、阀门、警灯、传送带等),这对于开发工业自动化、MES系统等尤为有用。

  • 美观的界面与图表功能:控件UI参考了Web设计,扁平化风格,视觉效果出色。同时内置了多种数据图表(如柱状图、饼图、折线图、雷达图等),满足数据可视化需求。

  • 开源与灵活性:控件库完全开源,你可以根据项目需要自由修改和扩展控件。

  • 良好的触屏体验:对触摸操作进行了特别优化,使得在触摸屏设备上也能有流畅自然的操作体验。

(4)使用

  • 通过 NuGet 安装(较方便):在 NuGet 包管理器中搜索 HZHControls 并安装。这是比较推荐的方式,方便管理和更新。

  • 引用源码项目:下载源代码后,将 HZH_Controls.csproj 项目文件直接添加到你的解决方案中,然后在你的项目中添加对该项目引用。这种方式方便你阅读和调试源码。(D:\上位机\扩展\hzh-controls)

  • 引用编译后的 DLL:先编译控件库源码生成 DLL 文件,然后在你的项目中直接添加对该 DLL 文件的引用。

(5)官方地址

  • Gitee 码云源码地址: https://gitee.com/kwwwvagaa/net_winform_custom_control

  • 官方网址: HZHControls官网|完全开源|.net framework4.0|类Layui控件|自定义控件|技术交流|WinFrom控件库|郑州多叶草科技有限公司 (提供说明文档及源码下载)

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

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

相关文章

别再误会了!Redis 6.0 的多线程,和你想象的完全不一样

技术解析核心误区:Redis 6.0是完全多线程的吗?No. Redis 6.0引入的多线程,只用于网络I/O的读写和数据的解析。而核心的命令执行(比如 GET, SET, HGETALL 等)依然是单线程的。Redis的架构演进,就像是把一个复…

23种设计模式——抽象工厂模式(Abstract Factory Pattern)详解

✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。 🍎个人主页:Meteors.的博客 💞当前专栏:设计模式 ✨特色专栏:知识分享 &#x…

本地部署开源数据生成器项目实战指南

本地部署开源数据生成器项目实战指南 前言 在当今大数据和人工智能时代,高质量数据集对于模型训练和算法开发至关重要。然而,获取真实且合规的数据集往往面临隐私、成本和法律等多重挑战。合成数据生成技术为此提供了优雅的解决方案,它能够…

2025React面试题集锦

1. React 是什么?它有哪些主要特点? React 是由Facebook开发的开源JavaScript库,用于构建用户界面(UI),尤其适合开发复杂的单页应用(SPA)。 主要特点: 声明式编程:只需描述UI应该是什么样子(如return <div>Hello</div>),React会自动处理DOM更新,无需…

设计模式:迭代器模式(Iterator Pattern)

文章目录一、概念二、实例分析三、示例代码一、概念 迭代器模式 是一种 行为型设计模式&#xff0c;用于在不暴露集合对象内部结构的前提下&#xff0c;顺序访问集合中的元素。 换句话说&#xff1a; 集合类只负责数据存储&#xff1b;迭代器类负责遍历集合&#xff1b;使用者…

Vue 3 学习路线指南

阶段一:基础入门 (1-2周) 1.1 环境准备 # 安装 Node.js (推荐 18+ 版本) # 安装 Vue CLI 或使用 Vite npm create vue@latest my-vue-app cd my-vue-app npm install npm run dev1.2 Vue 3 核心概念 响应式系统:ref(), reactive(), computed() 组合式 API:setup() 函数 模…

使用 `hover:not-[:has(:hover)]` 避免「父元素和子元素同时 hover」时的样式冲突

:hover:not-(:has(:hover)) has() CSS 4 引入的“父选择器”&#xff0c;意思是&#xff1a;匹配那些里面包含某个子元素/状态的元素。 例如&#xff1a;:has(:hover) 表示「自身包含正在被 hover 的子元素」。 :not() 取反伪类&#xff0c;表示不匹配里面的条件。 比如我…

第三十天-DMA串口实验

一、DMA概述二、DMA通道注意&#xff0c;想要往串口中写数据&#xff0c;外部请求信号应该是USARTx_TX&#xff0c;当DR寄存器为空时&#xff0c;产生TX信号&#xff0c;请求DMA。反之&#xff0c;从串口中读数据&#xff0c;外部请求信号应该是USARTx_RX&#xff0c;当DR寄存器…

C/C++ 中的inline(内联函数关键字)详解

在 C/C 编程中&#xff0c;函数调用虽然带来了代码复用和可读性提升&#xff0c;但频繁调用小型函数可能会产生额外的调用开销&#xff08;call overhead&#xff09;&#xff0c;比如栈帧的建立与销毁、参数传递等。 为了减少这种开销&#xff0c;C 引入了 inline&#xff08;…

2025 年高教社杯全国大学生数学建模竞赛A 题 烟幕干扰弹的投放策略完整成品 思路 模型 代码 结果 全网首发高质量!!!

烟幕干扰弹主要通过化学燃烧或爆炸分散形成烟幕或气溶胶云团,在目标前方特定空域形成遮蔽&#xff0c;干扰敌方导弹&#xff0c;具有成本低、效费比高等优点。随着烟幕干扰技术的不断发展&#xff0c;现已有多种投放方式完成烟幕干扰弹的定点精确抛撒,即在抛撒前能精确控制烟幕…

嵌入式第四十五天(51单片机相关)

一.1.CPU、MPU、MCU、GPU&#xff1a; CPU&#xff08;中央处理器&#xff09;&#xff1a;计算机的核心部件&#xff0c;负责执行指令和处理数据。 MPU&#xff08;微处理器&#xff09;&#xff1a;通常指更通用的处理器&#xff0c;强调计算能力。 MCU&#xff08;微控制器&…

今天面了一个Java后端工程师,真的让我猛抬头

今天面了一个Java后端工程师,真的让我猛抬头啊. 现在面试不像传统的八股文面试,我更多问的都是项目场景相关的问题,但是都能回答的不错.这一点我还是很惊讶的。 不仅如此,她的技术也很扎实,对Java核心机制&#xff08;JVM、并发、集合等&#xff09;理解深入&#xff0c;回答…

拦截器和过滤器(理论+实操)

拦截器和过滤器 本文旨在夯实基础以及实战加深理解,目的是更深的理解以便掌握,希望能跟着动手敲一遍,绝对受益匪浅 在本文,我会先给出两者的区别(理论知识),随后是两者各自的实操实现 文章目录拦截器和过滤器什么是过滤器和拦截器?1.过滤器2.拦截器执行整体流程拦截器和过滤器…

HTB 赛季8靶场 - Guardian

各位好&#xff0c;最近我的kali崩掉了&#xff0c;崩掉了&#xff0c;建议大家避K 番茄C盘瘦身&#xff0c;这家伙修改了我的avrt.dll文件&#xff0c;导致virtualbox不接受我的avrt.dll文件的签名了&#xff0c;从而导致virtualbox的虚拟机环境全崩无法开机。弄了几天&#x…

Rust+slint实现一个登录demo

系列文章目录 文章目录系列文章目录前言一、为什么前端选择slint而不是Tauri或者其他GUI框架二、开发工具三、代码编写项目结构前端代码编写后端开发编写运行效果总结前言 本文章就是一个简单rust全栈编程的一个小小的示例供rust新手阅读学习。 一、为什么前端选择slint而不是…

2025前端面试题及答案(详细)

HTML5 的新特性有哪些&#xff1f;简约版本&#xff1a;“HTML5 新特性主要体现在六个方面&#xff1a; 第一&#xff0c;语义化标签&#xff0c;比如 header、footer、nav 等&#xff0c;让页面结构更清晰&#xff1b; 第二&#xff0c;表单增强&#xff0c;新增了 date、emai…

分词器详解(二)

&#x1f50d; 第2层&#xff1a;中等深度&#xff08;15分钟理解&#xff09; 1. 理论基础 1.1 BPE的数学原理 核心思想&#xff1a;通过迭代合并高频字符对构建词汇表 算法形式化&#xff1a; 初始化词汇表 V0{c1,c2,...,cn}V_0 \{c_1, c_2, ..., c_n\}V0​{c1​,c2​,...,c…

嵌入式学习 51单片机(3)

UART 概述通用异步收发器&#xff08;UART&#xff09;是一种全双工、串行、异步通信协议&#xff0c;常用于设备间数据传输。包含两根信号线&#xff1a;RXD&#xff08;接收信号线&#xff09;TXD&#xff08;发送信号线&#xff09;通信方式单工通信方向固定&#xff0c;仅支…

Redis AOF 持久化:银行的 “交易流水单” 管理逻辑

目录 一、AOF 的核心逻辑&#xff1a;“每笔交易都记流水” 二、AOF 的三个步骤&#xff1a;从 “临时记录” 到 “正式归档” 1. 命令追加&#xff1a;记到 “临时小本本” 2. 写入与同步&#xff1a;抄到 “正式流水册” 3. AOF 还原&#xff1a;拿 “流水册” 重放交易…

代码随想录训练营第三十天|LeetCode452.用最少数量的箭引爆气球、LeetCode435.无重叠空间、LeetCode763.划分字母空间

452.用最少数量的箭引爆气球 贪心算法 重合最多的气球射一箭&#xff0c;就是局部用箭数量最少的&#xff0c;全局的用箭数量就是最少的。 首先对二维数组进行排序&#xff0c;这样就可以让气球更加紧凑。 思路&#xff1a;当前气球是否和上一个气球区间重合&#xff0c;如…