首页 > 其他分享 >.NET 多版本 WinForm 开源控件库 SunnyUI

.NET 多版本 WinForm 开源控件库 SunnyUI

时间:2024-09-14 09:03:32浏览次数:10  
标签:控件 SunnyUI UILocalize static NET public

合集 - .NET 开源工具(15)   1..NET 开源快捷的数据库文档查询和生成工具07-312..NET 结果与错误处理利器 FluentResults08-013..NET+WPF 桌面快速启动工具 GeekDesk08-194.Gradio.NET 支持 .NET 8 简化 Web 应用开发08-265..NET 开源实时监控系统 - WatchDog08-276.实用接地气的 .NET 微服务框架08-287..NET 开源报表神器 Seal-Report08-308..NET 最好用的验证组件 FluentValidation09-039..NET 8.0 文档管理系统网盘功能的实现09-0410..NET 8 + WPF 企业级工作流系统09-0511..NET 多版本兼容的精美 WinForm UI控件库09-0612.超轻量级、支持插件的 .NET 网络通信框架09-0913..NET 8 微软免费开源的 Blazor UI 组件库09-10 14..NET 多版本 WinForm 开源控件库 SunnyUI09-12 15.C# 开源教程带你轻松掌握数据结构与算法09-13 收起  

阅读目录

前言

给大家推荐一款开源的 Winform 控件库,可以帮助我们开发更加美观、漂亮的 WinForm 界面。

项目介绍

SunnyUI.NET 是一个基于 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 开源控件库,同时也提供了工具类库、扩展类库和多页面开发框架。

基于 .NET Framework 4.0,采用原生控件开发,参考 Element 主题风格,包含超过 70 个常用控件,如按钮、编辑框、下拉框、数据表格、工控仪表和统计图表,满足常规开发需求,每个控件都精心设计,注重细节。

提供 11 个 Element 风格主题和 6 个其他主题,支持多彩主题模式自定义。包含主题管理组件 UIStyleManager,可自由切换主题。

项目架构

控件库拥有不同的主题、字体和语言、包括了常见的组件Button、Label、CheckBox、TreeView和TabControl、对话框、进度条、消息提示,提供了扩展库和工具库,方便我们开发和使用,具体如下图所示:

项目环境

1、源码编译环境

VS 2022,安装.NET Framework 4.0 目标包

编译源码,.NET 8 需要 VS 2022 17.8+ 版本,或者修改 SunnyUI.csproj 文件的 TargetFrameworks 属性以适应 VS 环境

2、动态库应用环境

VS 2010 及以上均可,支持.NET Framework 4.0+、.NET 6、.NET 7

推荐通过 Nuget 安装

PM->Install-Package SunnyUI

或者通过 Nuget 搜索 SunnyUI 安装,不支持(.NET Framework 4 Client Profile)。

项目展示

1、主题

SunnyUI为了避免视觉传达差异,使用一套特定的调色板来规定颜色,为你所搭建的产品提供一致的外观视觉感受。

主要颜色参照Element(https://element.eleme.cn/

主色

SunnyUI主要品牌颜色是鲜艳、友好的蓝色。

Style主题

SunnyUI包含 Element 风格主题 11 个,DotNetBar 主题 3 个,其他主题 2 个,包含主题管理组件 UIStyleManager,可自由切换主题。

UIStyle.Blue

UIStyle.Purple

2、国际化

SunnyUI 控件内部默认使用中文,若希望使用其他语言,则需要进行多语言设置。

本页面所描述的国际化是针对SunnyUI内的按钮、标题等中文资源的国际化如您开发的系统需要做国际化请自行开发。

常用的按钮、标题、提示等文字已经设置为静态字符串变量,存于UILocalize.cs文件中。

复制代码
public static class UILocalize
{
    public static string InfoTitle = "提示";
    public static string SuccessTitle = "正确";
    public static string WarningTitle = "警告";
    public static string ErrorTitle = "错误";
    public static string AskTitle = "提示";
    public static string InputTitle = "输入";
    public static string CloseAll = "全部关闭";
    public static string OK = "确定";
    public static string Cancel = "取消";
    public static string GridNoData = "[ 无数据 ]";
    public static string GridDataLoading = "数据加载中 ......";
    public static string GridDataSourceException = "数据源必须为DataTable或者List";
}
复制代码

可以重写UILocalize类静态变量值来改变语言。

UILocalizeHelper类已经包含中文和英文的默认配置函数:

复制代码
public static class UILocalizeHelper
{
    public static void SetEN()
    {
        UILocalize.InfoTitle = "Info";
        UILocalize.SuccessTitle = "Success";
        UILocalize.WarningTitle = "Warning";
        UILocalize.ErrorTitle = "Error";
        UILocalize.AskTitle = "Query";
        UILocalize.InputTitle = "Input";
        UILocalize.CloseAll = "Close all";
        UILocalize.OK = "OK";
        UILocalize.Cancel = "Cancel";
        UILocalize.GridNoData = "[ No data ]";
        UILocalize.GridDataLoading = "Data loading ......";
        UILocalize.GridDataSourceException = "The data source must be DataTable or List";
    }
​
    public static void SetCH()
    {
        UILocalize.InfoTitle = "提示";
        UILocalize.SuccessTitle = "正确";
        UILocalize.WarningTitle = "警告";
        UILocalize.ErrorTitle = "错误";
        UILocalize.AskTitle = "提示";
        UILocalize.InputTitle = "输入";
        UILocalize.CloseAll = "全部关闭";
        UILocalize.OK = "确定";
        UILocalize.Cancel = "取消";
        UILocalize.GridNoData = "[ 无数据 ]";
        UILocalize.GridDataLoading = "数据加载中 ......";
        UILocalize.GridDataSourceException = "数据源必须为DataTable或者List";
    }
}
复制代码

如需要其他语言,则在自己程序里写函数更新UILocalize类静态变量值即可。

中英文效果展示:

3、字体图标

SunnyUI的字体图标目前主要有两个:

FontAwesome

https://fontawesome.com/

https://github.com/FortAwesome/Font-Awesome

ElegantIcons.ttf V1.0

https://www.elegantthemes.com/blog/resources/elegant-icon-font

这两个都是目前 Web 开发常用的字体图标,SunnyUI经过精心研发,将他们用于.NET Winform开发,省去了到处找图标的麻烦。

SunnyUI 常用字体图标的控件为 UISymbolButton 和 UISymbolLabel

字体图标的选择方法是设置UISymbolButton和UISymbolLabel的以下属性

Symbol:字体图标(int)

SymbolSize:字体图标的大小(int)

4、控件库

常用的各类组件都有,具体内容可以下载源码学习。

5、窗体

UIForm 常用的窗体基类

UILoginForm:登录窗体基类

6、多页面框架

SunnyUI多页面框架由框架和页面构成。最基本的实现是框架(IFrame)由UIForm实现,页面由(UIPage)实现。

在UIForm放置一个UITabControl,将多个UIPage放置于UIForm的UITabControl的TabPage内。

通过PageIndex(正整数,唯一)进行页面的关联和切换。

听起来有点复杂,其实主要就IFrame接口的三个函数:AddPage,ExistPage,SelectPage。

7、工具类库

简易的 Json 静态类库,可以在不引用 NewtonJson 即可简单处理 Json 对象。当然如果有复杂需求,第三方库还是推荐NewtonJson。另外在.NET 5,System.Text.Json的性能已经非常不错了,也可以尝试。

项目地址

GitHub:https://github.com/yhuse/SunnyUI

Gitee:https://gitee.com/yhuse/SunnyUI

帮助文档:https://gitee.com/yhuse/SunnyUI/wikis/pages

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!优秀是一种习惯,欢迎大家留言学习!

 

2024-09-14 09:07:26【出处】:https://www.cnblogs.com/1312mn/p/18405542

=======================================================================================

标签:控件,SunnyUI,UILocalize,static,NET,public
From: https://www.cnblogs.com/mq0036/p/18413276

相关文章

  • 论文复现--基于LeNet网络结构的数字识别
    前言一直就听说学习深度学习无非就是看论文,然后复现,不断循环,这段时间也看了好几篇论文(虽然都是简单的),但是对于我一个人自学,复现成功,我感觉还是挺开心的本人初学看论文的思路:聚焦网络结构与其实验的效果LeNet虽然简单,很老了,但是毕竟经典,对于初学的的我来说,我感觉还是很......
  • 在arm64 架构上安装dotnet 8.0.8 LTS
    树莓派4B是arm64的。在arm64上面运行aptlistdotnet是不会出来可用的dotnet的,即使aptupdate多次也一样。 好在dotnet本身是支持arm/arm64架构的,只是安装的时候不能使用apt罢了。那么久使用scripts来进行安装好了。 wget下载到本地之后,先chmod+x,就我自己的体验......
  • Acunetix v24.8 - 29 Aug 2024 高级版漏洞扫描器(最新版) 附Windows/Linux下载链接
    前言AcunetixPremium是一种Web应用程序安全解决方案,用于管理多个网站、Web应用程序和API的安全。集成功能允许您自动化DevOps和问题管理基础架构。AcunetixPremium:全面的Web应用程序安全解决方案Web应用程序对于企业和组织与客户、合作伙伴和员工的联系至关......
  • 一款.NET开源、简洁易用的Windows桌面小说阅读应用
    前言今天大姚给大家分享一款.NET开源、免费、简洁易用的Windows桌面小说阅读应用(是原生的Windows应用,为Windows11系统设计):CleanReader.Desktop。该应用适合喜欢阅读网文或者是本地轻量阅读的用户。系统要求操作系统:Windows11版本22000.0或更高版本应用功能自适应阅读亮......
  • 一个库帮你轻松的创建漂亮的.NET控制台应用程序
    前言做过.NET控制台应用程序的同学应该都知道原生的.NET控制台应用程序输出的内容都比较的单调,假如要编写漂亮且美观的控制台输出内容或者样式可能需要花费不少的时间去编写代码和调试。今天大姚给大家分享一个.NET开源且免费的类库帮你轻松的创建漂亮、美观的.NET控制台应用程序:Sp......
  • 使用NSSM把.Net Core部署至 Windows 服务
    1、官网http://www.nssm.cc/,下载地址http://www.nssm.cc/download2、下载后解压到自己喜欢的目录如:F:\work\nssm-2.24\win643、以管理员权限打开命令行工具,切换到nssm.exe所在路径,运行nssminstall,打开程序配置界面4、选择要部署的exe文件指定监听地址和端口如:dockerDemo.e......
  • UWP 通过 .NET 9 和Native AOT 的支持实现 UWP 应用的现代化
    微软(9月11日)发布博文,微软正在预览对.NET9的UWP(通用Windows平台)支持,为现有UWP开发人员提供一条使用最新的.NET和本机AOT实现其应用程序现代化的途径。这样做是因为该公司敦促开发人员切换到WindowsAppSDK和WinUI3,可以让现有UWP开发者利用最新.NET和Nativ......
  • 什么是 Rainbond?打破 Kubernetes 的复杂性
    近年来,随着云原生技术的快速发展,Kubernetes已经成为容器编排的标准。然而,尽管Kubernetes功能强大,它的复杂性也成为了众多开发者和运维人员的一大挑战。对于那些希望专注于应用开发的团队来说,学习和管理Kubernetes可能是一个高昂的学习成本,尤其是在中小企业中,开发者并没有足够......
  • 爆改YOLOv8|使用MobileNetV4替换yolov8的Backbone
    1,本文介绍MobileNetV4是最新的MobileNet系列模型,专为移动设备优化。它引入了通用反转瓶颈(UIB)和MobileMQA注意力机制,提升了推理速度和效率。通过改进的神经网络架构搜索(NAS)和蒸馏技术,MobileNetV4在多种硬件平台上实现了高效和准确的表现,在ImageNet-1K数据集上达到87%......
  • demo:tvm优化resnet50 llvm后端cpu上推理
    这是一个完整的例子。使用预训练的resnet50模型,经过tvm优化调整,target=llvm,在cpu上进行推理。最后打印结果是1这个索引代表goldfish importonnxfromtvm.contrib.downloadimportdownload_testdatafromPILimportImageimportnumpyasnpimporttvm.relayasrel......