惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Webroot Blog
Webroot Blog
U
Unit 42
A
About on SuperTechFans
宝玉的分享
宝玉的分享
月光博客
月光博客
C
CERT Recently Published Vulnerability Notes
P
Privacy International News Feed
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
P
Privacy & Cybersecurity Law Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Securelist
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Spread Privacy
Spread Privacy
L
Lohrmann on Cybersecurity
Apple Machine Learning Research
Apple Machine Learning Research
K
Kaspersky official blog
Hugging Face - Blog
Hugging Face - Blog
B
Blog
I
Intezer
Last Week in AI
Last Week in AI
T
Threat Research - Cisco Blogs
V
V2EX
L
LangChain Blog
AI
AI
G
GRAHAM CLULEY
T
Tor Project blog
人人都是产品经理
人人都是产品经理
D
Docker
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
I
InfoQ
Y
Y Combinator Blog
C
Comments on: Blog
GbyAI
GbyAI
www.infosecurity-magazine.com
www.infosecurity-magazine.com
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
N
News and Events Feed by Topic
MyScale Blog
MyScale Blog
H
Help Net Security
Vercel News
Vercel News
T
Tenable Blog
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿

博客园 - zhaotianff

一文带你搞懂医疗器械设计开发全生命周期 Windows如何清除本机记录的git用户名和密码 HL7协议详解 医疗行业 GDT 数据格式详解 一文带你搞懂C# 异步编程(async/await)底层原理 如何在C#中使用Chromium headless(无头模式)浏览器 不同.NET版本中的WPF新增功能 Windows平台下的各种原生UI框架介绍 C#如何Hook托管函数 WinDbg 用户层调试进阶教程 Windows编程的一些基础理论 推荐一款优秀的Windows经典文件管理器项目-WinFile Windows如何阻止应用程序联网 如何在WPF中捕获窗口外的事件 如何查看Windows进程的启动来源 Visual Studio 2026新解决方案格式slnx详解 我的微软MVP申请通过了 WPF MVVM实战系列教程(八、Prism DialogService, 对话框服务) WPF MVVM实战系列教程(七、Prism模块化) WPF 性能优化实战指南 WPF MVVM实战系列教程(六、Prism区域导航) WPF MVVM实战系列教程(五、Prism中的MVVM) WPF MVVM实战系列教程(四、Prism中的依赖注入) 微软 IDE 新纪元:Visual Studio 2026 初体验 Windows 7无法安装VMWare Tools的解决办法 WPF MVVM实战系列教程(三、创建Bootstrapper/启动器) WPF MVVM实战系列教程(二、使用Visual Studio 创建Prism项目) WPF MVVM实战系列教程(一、Prism框架介绍)
如何在WPF中使用 Fluent 主题
zhaotianff · 2026-04-29 · via 博客园 - zhaotianff

Fluent 主题

从 .NET 9 开始,WPF 附带了一个新主题-Fluent主题,它为 WPF 应用提供全新的现代 Windows 11 美学。 它包括集成的浅色和深色模式,以及系统主题色支持。

Fluent主题是为 WPF 做的仿 Fluent 设计的皮肤。Fluent设计是微软的新式UI设计风格,WinUI3实现了这种风格。

image

Fluent设计

关于Fluent设计,可以参考以下链接

https://fluent2.microsoft.design/get-started/whatisnew

以下为WPF Fluent主题的官方示例截图,我的测试环境是Windows 10 1903

image

 浅色模式

image

深色模式

Fluent主题实现

Fluent主题是WPF自带样式,这些样式定义在 PresentationFramework.Fluent中,所以在使用时不需要安装其它库。

image

代码结构

image

 Fluent样式实现

如何在WPF中使用

1、新建一个WPF工程(.NET 9以上版本)

image

2、在App.Xaml中添加资源字典 

 1 <Application x:Class="WPF_FluentDemo.App"
 2              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 3              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 4              xmlns:local="clr-namespace:WPF_FluentDemo"
 5              StartupUri="MainWindow.xaml">
 6     <Application.Resources>
 7         <ResourceDictionary>
 8             <ResourceDictionary.MergedDictionaries>
 9                 <ResourceDictionary Source="pack://application:,,,/PresentationFramework.Fluent;component/Themes/Fluent.xaml" />
10             </ResourceDictionary.MergedDictionaries>
11         </ResourceDictionary>
12     </Application.Resources>
13 </Application>

3、正常使用即可

这里我们添加一个Slider控件

1   <Grid>
2       <Slider Width="100" VerticalAlignment="Center"></Slider>
3   </Grid>

运行效果还是非常不错的,如下所示。

image

因为这是一套主题,所以我们直接使用WPF自带的控件即可,但是Fluent也增加了一些额外的组件,

可以访问 https://apps.microsoft.com/detail/9ndlx60wx4kq 下载官方Demo,来查看所有示例的源码。

image

4、设置主题模式

Fluent主题支持以下主题模式

  • Light— 应用浅色 Fluent 主题。
  • Dark- 应用深色 Fluent 主题。
  • System- 根据用户的当前 Windows 设置应用浅色或深色 Fluent 主题。
  • None— (默认值) 使用 Aero2 主题。

在XAML中设置主题模式

1 <Application x:Class="WPF_FluentDemo.App"
2              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4              xmlns:local="clr-namespace:WPF_FluentDemo"
5              StartupUri="MainWindow.xaml"
6              ThemeMode="Light">

在代码中设置主题模式

注意:此 API 是实验性的,可能会更改。如果要在代码中使用,需要抑制WPF0001错误

1             // 设置整个应用程序的主题模式
2 #pragma warning disable WPF0001 // 类型仅用于评估,在将来的更新中可能会被更改或删除。取消此诊断以继续。
3             Application.Current.ThemeMode = ThemeMode.Light;
4 #pragma warning restore WPF0001 // 类型仅用于评估,在将来的更新中可能会被更改或删除。取消此诊断以继续。
5 
6             // 设置当前窗口的主题模式
7 #pragma warning disable WPF0001 // 类型仅用于评估,在将来的更新中可能会被更改或删除。取消此诊断以继续。
8             ThemeMode = ThemeMode.Light;
9 #pragma warning restore WPF0001 // 类型仅用于评估,在将来的更新中可能会被更改或删除。取消此诊断以继续。

使用Windows主题色

从Windows 10开始, 引入了用户选择的主题色,用于提供个人触摸或调用特定视觉元素。 Fluent 支持用户选择的主题色。

Fluent主题已经帮我们定义好了Brush,直接像使用动态资源那样使用它就可以了

1   <Grid>
2       <Border Width="300" Height="300" HorizontalAlignment="Left" VerticalAlignment="Bottom" Background="{DynamicResource AccentFillColorDefaultBrush}"></Border>
3   </Grid>

运行效果

image

完整的Brush/Color定义,可以参考Demo里的Colors页面

image

参考链接:

https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/whats-new/net90#fluent-theme

示例代码(.NET 10)

https://github.com/zhaotianff/cnblog-demo-code/tree/main/WPF_FluentDemo