ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

WPF UI 上手指南:让 WPF 桌面应用获得 Fluent 风格的实用教程

WPF UI 上手指南:让 WPF 桌面应用获得 Fluent 风格的实用教程 WPF UI 上手指南让 WPF 桌面应用获得 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/wpfui做 WPF 的人多半熟悉这个状态默认控件样式还停留在 WinForms 年代灰按钮、普通列表框、系统原生标题栏。WPF UI 是一个面向 WPF 的 .NET 控件库把 Windows 11 的 Fluent 设计带入 WPF主题跟随系统、Mica 窗口背景、现代化导航都在其中。本文用三分钟讲清核心能力并给出 WPF UI 安装步骤与常见坑清单。WPF UI 是什么WPF UI 通过 NuGet 分发包名WPF-UIMIT 协议当前版本 4.3.0运行在 Windows 上支持 .NET 8 / 9 / 10netX.0-windows以及 .NET Framework 4.6.2 到 4.8.1。它适合两类人想给存量 WPF 应用换一套现代外观的开发者以及准备新建 WPF 项目的团队。它做两件事一是重绘 WPF 基础控件Page、ToggleButton、ListView等的样式二是提供NavigationView、NumberBox、Snackbar、ContentDialog等原生新控件不需要引入 WinUI。如何自动同步 Windows 系统主题WPF 应用默认不会跟随系统切换深浅色自己监听 Win32 消息比较繁琐。WPF UI 的SystemThemeWatcher会挂到窗口消息循环上监听WM_WININICHANGE用户切换 Windows 外观时自动更新应用的深色/浅色主题、强调色和窗口背景。用法是一行在主窗口构造函数里调用SystemThemeWatcher.Watch(this)默认应用 Mica 背景并同步强调色不想动强调色时传updateAccents: false。手动切换则用ApplicationThemeManager.Apply(ApplicationTheme.Dark, WindowBackdropType.Mica)。相关实现src/Wpf.Ui/Appearance/文档系统主题同步、主题系统、强调色。如何用 NavigationView 配置声明式导航经典 WPF 里用Frame切页要手写一堆代码返回按钮和历史都要自己维护。NavigationView把导航结构直接声明在 XAML 里给每个NavigationViewItem设置TargetPageType指向页面类即可回退按钮、导航历史、BreadcrumbBar同步都是控件内置的。ui:NavigationViewItem Content首页 Icon{ui:SymbolIcon Home24} TargetPageType{x:Type pages:DashboardPage} /MVVM 项目推荐通过依赖注入集成注册INavigationService建议 Singleton和INavigationViewPageProvider让页面由容器创建ViewModel 里注入服务即可发起导航。完整写法参考 NavigationView 文档 和 MVVM 示例项目控件实现在 src/Wpf.Ui/Controls/NavigationView/。如何用 FluentWindow 获得现代标题栏与 Mica 背景WPF 的Window只有系统默认标题栏想要 Mica 或 Acrylic 背景需要额外配置。把窗口基类换成ui:FluentWindow在 XAML 顶部放一个ui:TitleBar就得到带最小化/最大化/关闭按钮的现代标题栏Windows 11 上还支持 Snap Layout。Card、InfoBar、ToggleSwitch、AutoSuggestBox等常用控件全部位于Wpf.Ui.Controls命名空间Visual Studio 设计器可直接预览。控件源码集中在 src/Wpf.Ui/Controls/每个控件的用法说明见 Gallery 演示项目。如何接入系统托盘、通知与任务栏部分桌面功能 WPF 原生并不直接提供。WPF UI 拆出了几个独立包Wpf.Ui.Tray提供纯 WPF 的NotifyIcon托盘图标和右键菜单src/Wpf.Ui.Tray/Wpf.Ui.ToastNotifications用于 Windows 系统级弹窗通知src/Wpf.Ui.ToastNotifications/主包内的TaskbarService则负责任务栏按钮上的进度条。需要哪个引用哪个。 WPF UI 安装步骤与第一个窗口安装命令.NET CLIdotnet add package WPF-UI跑通第一个窗口的步骤新建一个 WPF 项目.NET 8 及以上或 .NET Framework 4.7.2。在App.xaml中合并主题字典与控件字典Theme属性指定Light或DarkApplication.Resources ResourceDictionary.MergedDictionaries ui:ThemesDictionary ThemeDark / ui:ControlsDictionary / /ResourceDictionary.MergedDictionaries /Application.Resources记得在 XAML 根节点声明命名空间xmlns:uihttp://schemas.lepo.co/wpfui/2022/xaml。把MainWindow改为继承ui:FluentWindow内容里放ui:TitleBar和一个ui:Card构造函数中加SystemThemeWatcher.Watch(this)。dotnet run启动切换一次 Windows 深浅色确认应用外观跟随变化。 WPF UI 常见误区主题画刷必须用DynamicResource文档明确要求颜色与画刷以DynamicResource引用用StaticResource的话运行时切换主题不会生效见 themes.md。Segoe Fluent Icons 字体不随库分发受字体 EULA 限制库只内置 Fluent System Icons用到缺少的图标需要自行把 Segoe Fluent Icons 加入应用资源Windows 11 自带该字体Windows 10 需手动添加见 README。UnWatch要在窗口加载后调用对尚未加载的窗口调用SystemThemeWatcher.UnWatch会抛InvalidOperationExceptionWatch则没有此限制见 system-theme-watcher.md。导航缓存会占内存NavigationView的CacheHistory默认是 0设为正数会保留页面状态只建议用于创建开销大或需要保持状态的页面见 navigation-view.md。延伸资源官方文档docs/含各控件说明与主题配置入门教程docs/documentation/getting-started.md示例项目samples/Simple、Mvvm、Dialogs 等完整可运行应用控件演示源码src/Wpf.Ui.Gallery/3.x 升级到 4.x 的变更说明docs/migration/v4-migration.md贡献与行为规范CONTRIBUTING.md建议先 clone 仓库git clone https://gitcode.com/GitHub_Trending/wp/wpfui运行src/Wpf.Ui.Gallery里的演示应用把每个控件的手感过一遍再回到自己的项目里动手改造。【免费下载链接】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),仅供参考
返回列表