# ZbSkin **Repository Path**: gitmy/ZbSkin ## Basic Information - **Project Name**: ZbSkin - **Description**: Winform UI库 - **Primary Language**: C# - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 15 - **Created**: 2025-09-15 - **Last Updated**: 2025-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ZbSkin #### 介绍 Winform UI控件库,也可以认为是一种UI解决方案。 运行例子程序时,请确保Fonts目录下有iconfont.ttf字体文件。 ZbSkin同时基于.Net Framework 4.0和.Net6。 【推荐1】[AntdUI](https://gitee.com/antdui/AntdUI/) 是基于 Ant Design 设计语言的 Winform 界面库,使用Apache-2.0协议,目前Gitee(2024.07)有1.2k stars,支持.Net Framework和.Net Core。 【推荐2】[ReaLTaiizor](https://github.com/Taiizor/ReaLTaiizor/) 是GitHub上一款Winform UI库,使用MIT协议,目前Github(2024.07)有1.4k stars,支持.Net Framework和.Net Core。 #### 软件架构 1、主题 内置4种主题:次世代、护眼绿、青草地、喜庆红,其中次世代为默认主题。 2、UI类库 ImageButton - 图片按钮。 MessageBoxEx - 弹出框。 PagingControl - 分页控件。 SkinForm - 窗口基类。 PopupForm - 弹出窗口。 SkinMainForm - 主窗口。 3、帮助类 CommonPara - 主题颜色等参数。 FontManager - 字体管理类。 ControlExtension - Control扩展类。 ControlTool - 控件可用帮助类。 DataGridViewHelper - DataGridView帮助类。 GraphicsHelper - 绘图帮助类。 ImageHelper - 图形帮助类。 TooltipHelper - Tooltip帮助类。 #### 运行截图 ![Image text](https://gitee.com/xhubobo/ZbSkin/raw/master/Docs/UserList.png) ![Image text](https://gitee.com/xhubobo/ZbSkin/raw/master/Docs/LogList.png) ![Image text](https://gitee.com/xhubobo/ZbSkin/raw/master/Docs/About.png) ![Image text](https://gitee.com/xhubobo/ZbSkin/raw/master/Docs/EditUser.png) ![Image text](https://gitee.com/xhubobo/ZbSkin/raw/master/Docs/Skin-1.png) ![Image text](https://gitee.com/xhubobo/ZbSkin/raw/master/Docs/Skin-2.png) ![Image text](https://gitee.com/xhubobo/ZbSkin/raw/master/Docs/Skin-3.png) #### 安装教程 1. 引用ZbSkin。 2. 创建Fonts目录,保证iconfont.ttf字体存在。 #### 使用说明 1. 主窗体 (1) 创建Winform窗体,以ZbSkin.Frm.SkinMainForm作为基类。 (2) 在窗体设计器中为主窗体设置Icon属性;设置Title属性作为主窗体标题。 (3) 可通过重写CloseForm方法在弹出询问框之前做逻辑处理,重写DoFormClosed方法在窗体关闭后做逻辑处理。 2. 底部控件 创建用户控件作为底部版权信息等显示载体,在主窗体中加入下面代码: BottomPanel.Controls.Add(new BottomControl() {Dock = DockStyle.Fill}); 3. 主菜单 (1) 目前没有封装菜单控件,只有菜单项控件可用。 (2) 创建用户控件作为菜单控件,在该控件上拖拽MenuItemControl作为菜单项,并在菜单控件中为其设置Tag并响应点击事件,将对应菜单项的Tag作为事件参数抛出即完成菜单的点击。 (3) 菜单项的排列有2种方式:垂直排列、水平排列,默认是垂直排列。目前需要在菜单控件种实现菜单项排列逻辑,可参考Sample工程相关代码。如果需要水平排列,请保证菜单项有足够的水平空间。 (4) 菜单设计好以后,在主窗体中添加该控件,对其点击事件做处理,并在窗体发生变化时处理菜单控件的位置和尺寸。 4. 内容页 (1) 内容页是菜单响应的体现,如果内容页大于1个,那么主窗体在点击菜单项后需要切换到对应的内容页。 (2) 内容页也是一种用户控件,创建好后设置ZbSkin.Controls.PageControl作为基类。 (3) 可重写PageControl的ShowControl、HideControl方法,在切换内容页的时候做一些业务逻辑处理。 5. 分页控件 (1) 可通过拖拽或者手动new出来一个分页控件ZbSkin.Controls.PagingControl,然后注册翻页事件。 (2) 数据准备好后需要对其进行初始化: pagingControl.ResetControl(totalCount, countPerPage); (3) 在翻页事件中通过GetPageCount(curPageIndex)获取当前需要的数据数量。 6. 字体 (1) 默认内置iconfont字体,确保Fonts目录下有该文件。 (2) 添加其他字体 ZbSkin.Share.FontManager.Instance.AddFont(fontName, fontFileName); (3) 使用字体 FontManager.Instance.InitControlFont(label_icon, FontManager.IconFont, NotifyIconTitle, 20); 7. 主题色 通过ZbSkin.Share.CommonPara.SkinColor获取主题色,用于换肤时底部栏修改颜色。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)