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 设计语言一致,可直接用于确认、提示、表单等交互场景。

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

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

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

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

ToggleButton
带开关动画的切换按钮,适合设置项、状态切换等场景。
🎛️ 输入与交互控件
NumberBox
数值输入框,内置增减步进操作,适合数量、参数等数值录入场景。

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

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

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

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

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

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

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

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 包也已上架:
- Gitee:https://gitee.com/lixiaoliyubo/Yuandl.ThemeUI
- GitHub:https://github.com/lixiaoliyubo/Yuandl.ThemeUI
- NuGet:https://www.nuget.org/packages/Yuandl.ThemeUI/
💡 本文所有配图均来自该开源项目 README 中的官方演示动图。
本文首发于 源动力开发站,转载请注明出处。

浙公网安备 33010602011771号