论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
.Net
›
.NET 多版本 WinForm 开源控件库 SunnyUI
.NET 多版本 WinForm 开源控件库 SunnyUI
东湖之滨
金牌会员
|
2024-9-12 12:58:13
|
显示全部楼层
|
阅读模式
楼主
主题
934
|
帖子
934
|
积分
2806
媒介
给各人推荐一款开源的 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内的按钮、标题等中文资源的国际化
,
如您开辟的体系必要做国际化请自行开辟。
常用的按钮、标题、提示等文字已经设置为静态字符串变量,存于ULocalize.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技能匠]
社区,与其他热爱技能的同行一起交流心得,共同成长!
优秀是一种习惯,欢迎各人留言学习!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
东湖之滨
金牌会员
这个人很懒什么都没写!
楼主热帖
《HarmonyOS开发 - 小凌派-RK2206开发 ...
VMware虚拟机安装黑群晖7.1
从0到1实现一套CICD流程之CD
当我们在聊「开源大数据调度系统Taier ...
ABP Framework 7.0 RC 新增功能简介 ...
MySQL视图
大二C#实现酒店管理系统(C端展示、前 ...
MySQL8.0 优化器介绍(二)
[ARM 汇编]高级部分—ARM汇编编程实战 ...
dotnet 6 为什么网络请求不跟随系统网 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表