大数跨境

Element 风格的 WPF 后台管理系统,免费开源,开箱即用

Element 风格的 WPF 后台管理系统,免费开源,开箱即用 dotNET跨平台
2026-05-30
7
导读:前言数字化转型加速的当下,高效、美观的企业级后台管理系统成为刚需。WPF其强大的渲染能力和灵活的UI设计,始

前言

数字化转型加速的当下,高效、美观的企业级后台管理系统成为刚需。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 模式的应用到多主题引擎的集成,都体现了现代化桌面开发的实践标准。

【声明】内容源于网络
0
0
dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,
内容 2088
粉丝 0
dotNET跨平台 专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,
总阅读38.3k
粉丝0
内容2.1k