一个基于.Net 开源的C/S控件库。这是一个专为 .NET WinForms 平台设计的开源 C/S(客户端/服务器)架构控件库,致力于为开发者提供一套现代化、高可定制的桌面应用程序界面组件。该控件库对 Windows Forms 原生控件进行了深度重绘和功能扩展,在保持原有控件操作习惯的基础上,提供了更美观的界面设计和更丰富的交互功能。这个开源控件库为需要现代化 WinForms 界面的开发者提供了一个完整的解决方案,既保留了 WinForms 的开发效率,又赋予了应用程序现代化的外观和交互体验。
- 全面控件重绘
- 对 Button、TextBox、ComboBox、ListBox、CheckBox、RadioButton 等基础控件进行视觉重构
- 引入扁平化设计风格,支持圆角、阴影、透明度等现代 UI 特性
- 自定义绘制引擎,实现抗锯齿渲染和高清 DPI 支持
- 丰富的控件集合
- 新增 DataGridView 增强版(支持卡片视图、分组、冻结行列等)
- 提供专业级导航控件(Outlook 风格导航栏、Ribbon 工具栏)
- 主题与样式系统
- 内置多种预设主题(深色/浅色模式、Office 风格、Material Design 等)
- 提供完整的样式自定义接口(颜色、字体、边框、动画等)
- 高级功能扩展
- 纯 C# 实现:100% 托管代码,无需依赖原生 DLL
- 高性能渲染:使用双缓冲和图形路径优化绘制性能
- 无侵入设计:可与现有 WinForms 项目无缝集成
- 完整文档:包含示例项目和 API 文档
1.重绘Datagridview

datagridview 筛选

2.带Lable 按钮的输入框
3.GDI绘制的按钮
4.继承Control 绘制的按钮
5.原点进度条
6.动态配置文件
WenSkin.WenConfig wenConfig = new WenSkin.WenConfig();
WenSkin.WenConfig wenConfigjson = new WenSkin.WenConfig(WenSkin.WenConfig.ConfigFormatEnum.Json);
var uid = wenConfig["SqlServer", "Uid"];
wenConfig["SqlServer", "Uid"] = "wen";
wenConfig.Show();
自动配置文件,生成设置窗口,并支持xml和json格式,自动序列化
6.动态生成窗口,绑定datarow数据,并自动生成插入数据库语句和更新语句。
private void wenImageButton1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("A");
dt.Columns.Add("B");
dt.Columns.Add("C");
dt.Rows.Add(001, "001", "");
dt.Rows.Add(002, "002", "001");
dt.Rows.Add(002, "001", "");
dt.Rows.Add(003, "004", "002");
dt.Rows.Add(004, "002", "001");
dt.Rows.Add(005, "002", "001");
wenDataTextBox1.DataSource = dt.Rows[1];
}
private void wenButton2_Click(object sender, EventArgs e)
{
var insert = wenDataTextBox1.InsertSqlString;
var update = wenDataTextBox1.UpdateSqlString;
this.MsgBoxInformation($"{ insert}\r\n\r\n{update}");
}

7.log显示框
8.分页控件自动分割DataTable 数据

9.模板listbox 可以直接绑定模板的listbox
wenListBoxControl1.Template = typeof(WenGroupBox);
wenListBoxControl1.Items.Add(new WenListBoxControl.WenListBoxControlItem());
wenListBoxControl1.Items.Add("测试");
wenListBoxControl1.Template = typeof(WenButton);
wenListBoxControl1.Items.Add("测试按钮模板");
10.ini文件解析和自动设置功能
var ini = new Ini("test.ini");
ini["Test1"] = "Value1";
ini["Group2", "Test2"] = "Value2";
var test1 = ini["test1"];
var test2 = ini["group2", "test2"];
ini.AddItem("group", "name", "value");
ini.AddRemark("group", "remark");
ini.Show();
PS:仅供学习,侵权立删。
阅读原文:原文链接
该文章在 2025/6/17 12:14:23 编辑过