WPF UI 快速上手三步把老式 WPF 应用改造成 Windows 11 原生质感【免费下载链接】wpfuiWPF UI provides the Fluent experience in your known and loved WPF framework. Intuitive design, themes, navigation and new immersive controls. All natively and effortlessly.项目地址: https://gitcode.com/GitHub_Trending/wp/wpfui如果你还在用纯 WPF 写桌面工具大概率已经被那股远古灰界面折磨过——原生控件千年不变想换个主题就得手写一摞资源字典更别提 Mica 毛玻璃、圆角窗口这些 Windows 11 的标志性观感了。而 WPF UI 正是为打破这种局面而生的开源控件库它把 Fluent Design 的流畅体验原封不动地搬进你熟悉的 WPF 框架不用重写业务代码不用换语言只需几步配置就能让老应用焕然一新。你的应用离 Win11 只差一个控件库先回答一个最关键的问题WPF UI 到底改了什么它没有另起炉灶造一套新框架而是做了一件更聪明的事——给 WPF 换血。它的核心在 src/Wpf.Ui/ 下包含三大块沉浸式控件NavigationView、NumberBox、Snackbar、ContentDialog 等几十个现代化控件补齐了原生 WPF 缺失的 Fluent 部件主题与外观通过 src/Wpf.Ui/Appearance/ 里的ApplicationThemeManager实现深浅色、高对比度乃至跟随系统主题的自动切换系统深度整合任务栏进度、系统托盘这些 Windows 特色能力也被封装成了开箱即用的 API。换句话说它把你在 UWP / WinUI 里才能见到的体验全部用 WPF 的技术栈重新实现了一遍而且全部原生、零依赖。开工前的一分钟准备动手之前你只需要三样东西缺一不可也毫不复杂NuGet 包在项目里搜索并安装Wpf.Ui这是最省事的引入方式后续升级也方便Visual Studio 2022 扩展官方在 src/Wpf.Ui.Extension/ 维护了一套项目模板装上之后新建项目时能直接生成带依赖注入和 MVVM 骨架的工程示例代码整个仓库本身就是最好的教材克隆仓库后按 docs/documentation/index.md 的指引按图索骥即可。如果你是零基础起步强烈建议先跑一遍 samples/Wpf.Ui.Demo.Simple/它是最精简的完整示例看一遍比读十篇文章都直观。第一步让主题系统先跑起来任何 WPF 应用的颜值起点都是App.xaml。WPF UI 通过两个特殊的资源字典接管全局外观改动小到你几乎感觉不到Application.Resources ResourceDictionary ResourceDictionary.MergedDictionaries ui:ThemesDictionary ThemeDark / ui:ControlsDictionary / /ResourceDictionary.MergedDictionaries /ResourceDictionary /Application.Resources这段代码做了什么ThemesDictionary负责注入整套主题资源选Light还是Dark由你定ControlsDictionary则把所有控件的 Fluent 样式一次性装进应用。两行配置全局生效——这就是 WPF UI 与手写样式最大的不同它替你完成了 90% 的样式工程。第二步把窗壳换成 FluentWindow接下来是肉眼可见的变化把主窗口的基类从Window换成ui:FluentWindow。对比一下 samples/Wpf.Ui.Demo.Simple/MainWindow.xaml 的开头部分ui:FluentWindow x:ClassMyApp.MainWindow xmlns:uihttp://schemas.lepo.co/wpfui/2022/xaml ExtendsContentIntoTitleBarTrue WindowBackdropTypeMica WindowCornerPreferenceRound注意看三个关键属性WindowBackdropTypeMica让背景透出 Windows 11 的 Mica 材质WindowCornerPreferenceRound让窗口四个角变圆润ExtendsContentIntoTitleBarTrue则把标题栏交给你自定义。一句话总结窗壳换掉Windows 11 的质感立刻上线。换完窗壳再配上ui:TitleBar自定义标题栏你的应用从任务栏图标到窗体结构就已经和系统原生应用站到同一条审美线上了。第三步用 NavigationView 搭起应用骨架单窗口好看只是第一步多页面应用的导航才是真正的门面。WPF UI 的NavigationView复刻了 Win11 设置页的侧边栏交互可折叠、支持面包屑、自带返回逻辑。核心用法比想象中简单ui:NavigationView ui:NavigationView.MenuItems ui:NavigationViewItem Content首页 Icon{ui:SymbolIcon Home24} TargetPageType{x:Type pages:HomePage} / ui:NavigationViewItem Content数据 Icon{ui:SymbolIcon DataHistogram24} TargetPageType{x:Type pages:DataPage} / /ui:NavigationView.MenuItems ui:NavigationView.FooterMenuItems ui:NavigationViewItem Content设置 Icon{ui:SymbolIcon Settings24} TargetPageType{x:Type pages:SettingsPage} / /ui:NavigationView.FooterMenuItems /ui:NavigationView每个NavigationViewItem用TargetPageType声明它对应的页面类型选中即跳转返回和历史记录由控件自己管理。侧边栏的形态还能通过PaneDisplayMode灵活调整一行属性切换五种布局取值表现适用场景Left侧边栏常驻展开桌面宽窗口Top导航变为顶部横条窄面板工具LeftCompact默认只显示图标悬停展开紧凑型后台LeftMinimal默认隐藏点击汉堡键呼出小窗口应用Auto按窗口宽度自动决策响应式首选上图来自官方示例应用 src/Wpf.Ui.Gallery/可以看到同一套NavigationView在宽屏和窄屏下的智能切换。想复刻这种响应式行为只需监听窗口SizeChanged事件动态改写PaneDisplayMode即可。让主题跟随系统自动切换现代应用的标准动作是用户切了系统深色模式应用立刻跟上。WPF UI 把这件事压缩成了两行代码核心类藏在 src/Wpf.Ui/Appearance/ 里using Wpf.Ui.Appearance; public partial class MainWindow : System.Windows.Window { public MainWindow() { SystemThemeWatcher.Watch(this); // 自动跟随系统主题与强调色 InitializeComponent(); } }这段代码做了什么SystemThemeWatcher会监听 Windows 的主题变更事件一旦系统在浅色/深色间切换它立即用ApplicationThemeManager重新加载对应资源你的整个界面无缝换肤。如果想要手动强制主题调用ApplicationThemeManager.Apply(ApplicationTheme.Dark, WindowBackdropType.Mica)即可。原理细节可以翻看 docs/documentation/themes.md里面还覆盖了高对比度模式和Changed事件回调。五个看一眼就能记住的进阶模块学会了主干剩下就是按需取用。下表是仓库里最值得关注的五个能力模块按想要什么效果来检索我想要……去这里找一句话说明弹窗、消息提示src/Wpf.Ui/Controls/ContentDialog/ 与 Snackbar现代化对话框和轻量通知条任务栏进度src/Wpf.Ui/Taskbar/下载、导出时在任务栏图标上显示进度系统托盘src/Wpf.Ui.Tray/最小化到托盘、右键菜单依赖注入导航src/Wpf.Ui.DependencyInjection/MVVM 架构下的页面解析与导航代码高亮src/Wpf.Ui.SyntaxHighlight/内置 Monaco 风格代码块控件例如给应用加个托盘图标只需要在 XAML 里放一个tray:NotifyIcon并绑定菜单整个过程不写一行 P/Invoke。这类系统级功能原本要查半天 Win32 API现在一行 XAML 搞定的体验正是 WPF UI 最大的价值所在。示例项目是最好的老师想验证每种能力的最佳方式是直接打开仓库里四个示例工程对照学习Simple最精简的起步模板适合第一次接触Mvvm展示了INavigationService如何与 MVVM 结合samples/Wpf.Ui.Demo.Mvvm/Views/MainWindow.xaml 值得逐行读SetResources.Simple演示如何覆盖和重定义默认资源做深度定制时必看Gallery上百个控件的活文档相当于一个可运行的控件浏览器。另外如果你是从旧版本升级上来的老用户别漏掉 docs/migration/ 下的 v2、v3、v4 迁移指南官方把每个大版本的破坏性变更都整理成了清单照着改基本不会踩坑。接下来你可以做什么到这里你的应用已经完成了从原生灰到Fluent 质感的三步蜕变。下一步的行动清单很简单把现有项目按本文三步走完体验一把零重写换肤用 Gallery 示例逐个试玩控件把需要的模块对应到 src/Wpf.Ui/Controls/ 下的源码遇到问题先去 docs/documentation/ 查指南再对照示例工程排错觉得好用的话按照仓库根目录的 CONTRIBUTING.md 参与社区一起让这个项目的控件库越来越丰富。毕竟让 Windows 桌面开发重新变得赏心悦目从来不是某一家的事——它需要一个像 WPF UI 这样愿意扎根在旧框架上的现代方案也需要每一个仍在写 WPF 的你。【免费下载链接】wpfuiWPF UI provides the Fluent experience in your known and loved WPF framework. Intuitive design, themes, navigation and new immersive controls. All natively and effortlessly.项目地址: https://gitcode.com/GitHub_Trending/wp/wpfui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考