WPF UI 4.0 上手指南:三步搭出带导航、跟主题的 Fluent 风格窗口 📅 发布时间:2026/9/18 19:51:56 👁 浏览次数: WPF UI 4.0 上手指南三步搭出带导航、跟主题的 Fluent 风格窗口【免费下载链接】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/wpfuiWPF UI 是为 WPF 框架提供 Fluent 设计体验的控件库涵盖窗口、主题、导航和各类交互控件其 4.0 系列当前仓库版本为 4.3.0把导航、图标和对话框体系都换成了与 Win UI 对齐的实现。这篇文章不讲抽象概念而是围绕两个最常见的开发场景——搭一个带导航主窗口、让窗口背景跟随系统深浅色切换——把 4.0 的核心用法串起来最后交代 3.x 老项目升级时要改哪些地方。场景一搭一个带导航菜单的主窗口先装包NuGet 包名是WPF-UIdotnet add package WPF-UI装完有两件事。一是在App.xaml的MergedDictionaries里引入ThemesDictionary可选Light或Dark主题和ControlsDictionary这是控件样式生效的前提docs/documentation/getting-started.md 有完整说明。二是在主窗口里放一个NavigationView。4.0 的导航是声明式的每个NavigationViewItem通过TargetPageType绑定目标页面类型点击即切换无需手写路由逻辑FooterMenuItems放设置这类固定入口控件自带返回按钮和CanGoBack/GoBack()回退能力。ui:NavigationView x:NameRootNavigation ui:NavigationView.MenuItems ui:NavigationViewItem ContentHome Icon{ui:SymbolIcon Home24} TargetPageType{x:Type pages:DashboardPage} / ui:NavigationViewItem ContentData Icon{ui:SymbolIcon DataHistogram24} TargetPageType{x:Type pages:DataPage} / /ui:NavigationView.MenuItems /ui:NavigationView运行效果见 WPF UI Gallery一个基于本库的示例应用它本身就是用NavigationView搭的如果页面依赖注入创建而不是new出来4.0 也给了配套方案INavigationAware、INavigableView等接口移到了独立的WPF-UI.Abstractions包随主包自动引入页面创建实现IPageService改名为INavigationViewPageProvider用Wpf.Ui.DependencyInjection包的AddNavigationViewPageProvider()注册后在窗口里调一次SetPageProviderService即可。MVVM 完整示例见 samples/Wpf.Ui.Demo.Mvvm/导航控件全部属性见 docs/documentation/navigation-view.md。场景二窗口背景怎么跟随系统深浅色切换Win11 的 Mica 云母背景不会自己变系统从浅色切到深色时应用需要自己监听到变化并重新应用主题。4.0 用SystemThemeWatcher把这件事压成了一行调用——它在窗口消息循环上挂了一个钩子监听WM_SETTINGCHANGE等系统广播消息检测到深浅色或强调色变化后自动调用ApplicationThemeManager.ApplySystemTheme()并刷新窗口背景// 在主窗口构造函数中 SystemThemeWatcher.Watch(this);第二个参数可指定背景类型Mica、Acrylic、Tabbed、Auto、NoneupdateAccents: false可只跟主题不动强调色。两点细节Watch允许在未加载的窗口上调用UnWatch则要求窗口已加载多窗口下设置是全局的以最后一次Watch的参数为准。详见 docs/documentation/system-theme-watcher.md。3.x 老项目升级要改什么迁移文档在 docs/migration/4.0 系列的改动可以分两段看3.0 时代旧的Navigation等导航控件合并为单一的NavigationView所有图标统一走新的IconElement体系TitleBar、NavigationView、Button上的图标随之更换ContentDialog、MessageBox、Snackbar的接口不向后兼容需要按新签名调整调用。4.0 系列导航相关接口抽到WPF-UI.Abstractions独立包DI 页面创建走INavigationViewPageProviderWpf.Ui.DependencyInjectionINavigationService用于跨 ViewModel 导航官方建议注册为单例。升级时建议对照 docs/migration/v4-migration.md 逐项核对再参考 samples/ 下的Wpf.Ui.Demo.Simple和Wpf.Ui.Demo.Mvvm两个示例校准写法。接下来做什么新手建议按这个顺序走先跑通dotnet add package WPF-UI 两个字典 一个NavigationView的最小窗口再给主窗口加上SystemThemeWatcher.Watch然后打开 docs/ 按控件逐项查阅。遇到接口签名问题优先看 docs/migration/ 而不是翻源码想提改进或参与贡献读一下 CONTRIBUTING.md 即可。核心资料集中在三处入门教程 docs/documentation/getting-started.md、可运行的示例工程 samples/、以及仓库源码 src/Wpf.Ui/。【免费下载链接】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),仅供参考