前言
数字化转型加速的当下,高效、美观的企业级后台管理系统成为刚需。WPF 其强大的渲染能力和灵活的 UI 设计,始终是 Windows 桌面开发的重要选择。
今天推荐一个融合现代 Element UI 设计语言的 WPF 开源后台框架,为大家提供免费、可定制的高效解决方案,显著降低企业级应用开发门槛。
项目介绍
一款专注于用户体验和视觉设计的 WPF 管理后台系统。它采用了流行的 Element 主题风格,结合 HandyControl 等 UI 框架,提供美观且实用的前端界面。
ZRCLIENT 基于.Net Framework 4.5.2 开发,支持多种图表组件和多样式引用,能够满足各种复杂的业务需求。另外,该项目完全开源,欢迎大家下载并进行二次开发。
项目功能
ZRCLIENT 提供以下核心功能:
-
用户管理:支持用户注册、登录、权限管理和角色分配。
-
数据展示:通过 LiveCharts.Wpf 实现多种图表组件,如折线图、柱状图、饼图等,方便用户直观地查看数据。
-
样式定制:支持多种主题模式,允许用户自定义界面颜色、字体等样式。
-
全局搜索:提供强大的全局搜索功能,方便用户快速查找所需信息。
-
多语言支持:内置多语言支持,方便国际化应用。
-
日志记录:记录用户的操作日志,便于后期审计和故障排查。
-
数据导出:支持将数据导出为 Excel、PDF 等格式,方便用户进行数据分析和报告生成。
-
通知提醒:提供实时的通知提醒功能,确保用户不会错过重要信息。
项目特点
1、采用 Element 主题风格
界面设计简洁美观,提供一致的用户体验。
2、基于.Net Framework 4.5.2
兼容性好,适合大多数企业级应用。
3、使用 HandyControl 作为 UI 框架
提供丰富的控件库,简化开发工作。
4、集成 LiveCharts.Wpf 图表组件
支持多种图表类型,满足数据可视化需求。
5、支持多样式引用
通过 WpfMultiStyle 实现多样化的样式配置,灵活应对不同场景。
项目技术
ZRCLIENT 的技术栈包括:
-
开发框架:.Net Framework 4.5.2
-
UI 框架:HandyControl
-
图表组件:LiveCharts.Wpf
-
多样式引用:WpfMultiStyle
-
MVVM 框架:MVVMLight
-
开发工具:Visual Studio 2019
技术的选择确保了项目的可维护性、扩展性和代码质量。
HandyControl 提供丰富的 UI 组件,极大地简化了前端开发工作;
LiveCharts.Wpf 则支持多种图表类型,满足数据可视化的需要;
MVVMLight 框架则提供了清晰的分层结构,便于模块化开发。
项目代码
创建宽度改变动画
/// <summary>
/// 创建宽度改变动画
/// </summary>
/// <param name="element">元素</param>
/// <param name="Form">起始值</param>
/// <param name="To">结束值</param>
/// <param name="span">间隔</param>
public static void CreateWidthChangedAnimation(UIElement element, double Form, double To, TimeSpan span)
{
DoubleAnimation doubleAnimation = new DoubleAnimation();
doubleAnimation.From = Form;
doubleAnimation.To = To;
doubleAnimation.Duration = span;
Storyboard.SetTarget(doubleAnimation, element);
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("Width"));
Storyboard storyboard = new Storyboard();
storyboard.Children.Add(doubleAnimation);
storyboard.Begin();
}
工具类
获取当前计算机 CPU 使用率 和 内存使用百分比 的工具类。
public class ComputerInfo
{
// 用于监控 CPU 使用率的性能计数器
private PerformanceCounter cpuCounter;
// 用于查询内存信息的 WMI 管理类
private ManagementClass memCounter;
// 单例实例,确保全局唯一
private static ComputerInfo instance;
/// <summary>
/// 获取 ComputerInfo 实例的单例方法
/// </summary>
public static ComputerInfo GetInstance()
{
// 加锁防止多线程下重复创建实例
lock ("instance")
{
if (instance == null)
{
instance = new ComputerInfo();
// 初始化 CPU 性能计数器,监控整体处理器时间
instance.cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");
// 初始化内存管理类
instance.memCounter = new ManagementClass();
}
return instance;
}
}
/// <summary>
/// 获取当前内存使用百分比
/// 原理:计算总内存容量与可用内存之差,再求出使用率
/// </summary>
public double GetMemInfo()
{
// 获取物理内存信息,统计总容量(GB)
memCounter.Path = new ManagementPath("Win32_PhysicalMemory");
ManagementObjectCollection moc = memCounter.GetInstances();
double available = 0, capacity = 0;
foreach (ManagementObject mo1 in moc)
{
capacity += Math.Round(Int64.Parse(mo1.Properties["Capacity"].Value.ToString()) / 1024.0 / 1024.0 / 1024.0, 1);
}
moc.Dispose(); // 释放资源
// 获取当前可用内存(GB)
memCounter.Path = new ManagementPath("Win32_PerfFormattedData_PerfOS_Memory");
moc = memCounter.GetInstances();
foreach (ManagementObject mo2 in moc)
{
available += Math.Round(Int64.Parse(mo2.Properties["AvailableMBytes"].Value.ToString()) / 1024.0, 1);
}
moc.Dispose();
// 返回内存使用百分比
return (capacity - available) / capacity * 100;
}
/// <summary>
/// 获取当前 CPU 使用率(%)
/// </summary>
public double GetCPUInfo()
{
return this.cpuCounter.NextValue(); // 获取当前 CPU 使用值
}
/// <summary>
/// 释放占用的资源,避免内存泄漏
/// </summary>
public void Dispose()
{
this.memCounter?.Dispose();
this.cpuCounter?.Dispose();
}
}
项目效果
通过使用 ZRCLIENT,可以快速开发出一个美观、实用且高度定制化的后台管理系统。
以下是部分实际效果展示:
系统登录
系统首页
用户管理
项目源码
Gitee:https://gitee.com/SayHelloCat/zrclient
总结
Element 主题风格的 WPF 管理后台系统开箱即用的 解决方案。其技术选型兼顾稳定性和前瞻性,从 MVVM 模式的应用到多主题引擎的集成,都体现了现代化桌面开发的实践标准。

