当前位置: 首页 > web >正文

第二阶段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.xdnf.cn/news/20195.html

相关文章:

  • 力扣516 代码随想录Day16 第一题
  • 【涂鸦T5】6. lvgl显示光感数值
  • 鸿蒙:AppStorageV2状态管理和数据共享
  • Gmail 数据泄露安全警报以及启示
  • 【Linux】线程概念与控制
  • 代码随想录刷题Day49
  • house (ai)
  • 对话Michael Truell:23岁创立Cursor,与Github Copilot竞争
  • 【C++上岸】C++常见面试题目--算法篇(第十九期)
  • 2025年8月文章一览
  • 深度学习:自定义数据集处理、数据增强与最优模型管理
  • 数据旁路(Data Bypassing)是什么?
  • 安装3DS MAX 2026后,无法运行,提示缺少.net core的解决方案
  • 2025年数学建模国赛C题第二版本超详细解题思路
  • Qwen-agent 核心功能分析学习
  • 从零开始学无监督学习:图像混合与标签平滑技术详解,收藏不走丢
  • C++开发中的常用设计模式:深入解析与应用场景
  • javaweb基础第一天总结(HTML-CSS)
  • SpringBoot中 Gzip 压缩的两种开启方式:GeoJSON 瘦身实战
  • 基于网络原理——HTTP/HTTPS的Web服务搭建与核心技术实践
  • Ubuntu 使用 Samba 共享文件夹
  • 什么是CA根证书
  • Apache PDFBox 与 spire.pdf for java 使用记录
  • 软件架构师全方位工具图谱
  • Java全栈开发面试实战:从基础到高并发的深度解析
  • 【数学建模学习笔记】机器学习回归:决策树回归
  • 无人机信号防干扰技术难点分析
  • 企业白名单实现【使用拦截器】
  • 梯度爆炸问题:深度学习中的「链式核弹」与拆弹指南
  • 嵌入式学习 51单片机(3)