AIGC标识 Yuandl.ThemeUI:开源 WPF 现代 UI 组件库

WPF 应用界面老旧、自定义样式成本高,是很多 .NET 桌面开发者的长期痛点。Yuandl.ThemeUI 提供了一套开箱即用的现代 UI 组件库,通过 NuGet 一键安装、三步接入,就能让 WPF 应用拥有 Windows 11 风格的 Fluent 界面。

🎨 项目定位与适用场景

Yuandl.ThemeUI 是一款开源的 WPF 现代 UI 组件库,界面设计、颜色选择与控件外观均受 Microsoft 为 Windows 11 打造的项目启发,主打丰富、直观、简洁的主题设计,帮助开发者摆脱繁琐的样式定制工作。

它的核心特点包括:

  • 框架覆盖广:同时支持 .NET Framework 4.0+(4.6.2/4.7/4.8)与 .NET 6/7/8,新老项目都能接入
  • 控件体系完整:内置 FluentWindow、TitleBar、Card、Button、ListBox、Notification、NumberBox、PinBox、SidebarMenu、ToggleButton、UniformGrid、Progress、InfoBar、Mask、Slider、DropDownButton、Chart、Dialog、DataGrid 等常用控件
  • NuGet 交付:一条命令即可安装,无需编译源码或手动引用程序集

仓库中还附带两个示例工程:带导航功能的 Demo 应用,以及包含全部控件的 Sample 应用,可作为使用参考。

🎨 项目定位与适用场景

📦 安装与三步接入

组件库通过 NuGet 交付,在 Package Manager 控制台中执行以下命令即可安装:

Install-Package Yuandl.ThemeUI

💡 仓库 README 建议使用预览版 NuGet 包获取最新的功能特性。

安装完成后,只需三步即可完成接入。

第一步:在 App.xaml 中加载自定义样式。 先添加命名空间,再将主题字典与控件字典合并进应用资源:

xmlns:ui="http://schemas.yuandl.cn/xamltheme/2024/xaml"
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ui:ThemesDictionary Theme="Light"/>
            <ui:ControlsDictionary />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

第二步:在 MainWindow.cs 中应用主题。 窗口构造完成初始化后调用主题管理器:

public partial class MainWindow
{
    public MainWindow()
    {
        InitializeComponent();
        ApplicationThemeManager.Apply(this);
    }
}

第三步:在 MainWindow.xaml 中替换窗口根元素。 使用 FluentWindow 作为窗口容器,即可直接使用组件库控件:

<ui:FluentWindow
  ...
  xmlns:ui="http://schemas.yuandl.cn/xamltheme/2024/xaml">
  <StackPanel>
      <ui:TitleBar Title="Yuandl ThemeUI"/>
      <ui:Card Margin="8">
          <ui:Button Content="Hello World" Icon="{ui:SymbolIcon Fluent24}" />
      </ui:Card>
  </StackPanel>
</ui:FluentWindow>

📦 安装与三步接入

🪟 对话框与数据展示控件

Dialog

内置现代化对话框,样式与 Fluent 设计语言一致,可直接用于确认、提示、表单等交互场景。

Dialog 对话框

DataGrid

提供表格数据展示能力,适合报表、数据管理类页面的快速搭建。

DataGrid 数据表格

🧭 导航与布局控件

SidebarMenu

侧边栏导航菜单,支持多级菜单结构,适合后台管理类应用的整体布局。

SidebarMenu 侧边栏菜单

ListBox

样式升级的列表控件,展示效果贴近 Windows 11 系统风格。

ListBox 列表控件

UniformGrid

等分布局网格,让多卡片、多元素页面排列更规整。

UniformGrid 等分网格

ToggleButton

带开关动画的切换按钮,适合设置项、状态切换等场景。

ToggleButton 切换按钮

🎛️ 输入与交互控件

NumberBox

数值输入框,内置增减步进操作,适合数量、参数等数值录入场景。

NumberBox 数值输入框

PinBox

验证码输入框,分段输入并自动跳转,适合验证码、密码确认类交互。

PinBox 验证码输入框

Slider

滑块控件,支持范围取值与刻度展示,适合音量、亮度等调节场景。

Slider 滑块控件

下拉按钮,将按钮与下拉菜单组合,适合操作分组、快捷入口等场景。

DropDownButton 下拉按钮

💬 反馈提示与可视化控件

Notification

消息通知控件,支持从窗口边缘弹出,适合操作结果反馈与提醒。

Notification 消息通知

InfoBar

信息条,用于页面内的状态提示、警告与错误说明。

InfoBar 信息条

Progress

进度展示控件,支持多种进度样式,适合任务进度、加载状态展示。

Progress 进度控件

Mask

遮罩层控件,可配合加载动画实现页面等待效果。

Mask 遮罩层

Chart

图表控件,内置常用图表类型,满足数据可视化需求。

Chart 图表

⚠️ 设计来源与图标注意事项

组件库的界面设计、颜色选择与控件外观均受 Microsoft 为 Windows 11 制作的项目启发,Sample 应用中包含来自 Microsoft WinUI 3 库应用的图标,用作创建工具的示例。

图标方面,Yuandl.ThemeUI 使用 Fluent 系统图标字体。需要注意两点:

  • Segoe Fluent Icons 默认安装在 Windows 11 上,但 Windows 10 及更低版本需要手动将字体添加到应用资源中
  • 由于该字体的 EULA 限制,组件库无法附带字体副本,缺失图标需自行补充

如果你的应用使用了自定义字体路径,可以在应用词典中为字体添加替代路径:

<FontFamily x:Key="SegoeFluentIcons">pack://application:,,,/;component/Fonts/#Segoe Fluent Icons</FontFamily>

总结

Yuandl.ThemeUI 以 MIT 协议开源,可以免费用于私人和商业项目,使用时需在项目中包含许可证副本。相比手动编写样式资源或引入重型第三方框架,它通过 NuGet 交付、三步接入,配合二十余种开箱即用的控件,能显著缩短 WPF 应用的界面开发周期。


📦 开源项目地址

项目在 Gitee 与 GitHub 双平台开源,NuGet 包也已上架:

💡 本文所有配图均来自该开源项目 README 中的官方演示动图。


本文首发于 源动力开发站,转载请注明出处。

posted @ 2026-11-11 21:12  源动力技术栈  阅读(39)  评论(0)    收藏  举报