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
类),可以方便地将界面切换为英文等其他语言,适合开发面向国际市场的应用。 -
字体图标集成:集成了 FontAwesome 和 ElegantIcons 两套流行的字体图标库,开发者可以直接在控件中使用这些矢量图标,无需到处寻找图片资源,使得界面更加精简和专业。
-
性能优化:控件库在开发过程中注重性能,力求在提供丰富视觉效果的同时保证应用的流畅运行。
(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控件库|郑州多叶草科技有限公司 (提供说明文档及源码下载)