在 MAUI 中实现全局样式,核心是通过 App.xaml 中的
ResourceDictionary定义可复用的样式(
Style),并设置
TargetType或
x:Key,让整个应用都能访问。
在 App.xaml 中定义全局样式资源
打开
App.xaml(通常位于项目根目录),在
Application.Resources内添加
ResourceDictionary。所有在这里定义的样式,默认对整个 App 生效: 使用
TargetType可为某类控件统一设置默认外观(如所有
Label) 使用
x:Key可定义命名样式,需显式通过
Style="{StaticResource MyLabelStyle}" 引用
支持嵌套 ResourceDictionary.MergedDictionaries拆分管理(比如按主题或模块)
示例:定义默认 Label 和命名 Button 样式
以下代码放在
App.xaml的
<application.resources></application.resources>内:
这样,所有
Label自动应用该样式;而
Button需手动指定:
Style="{StaticResource PrimaryButtonStyle}"。
注意作用域与继承关系
App.xaml 定义的资源属于“应用级”,优先级低于页面(Page)或控件本地定义的样式,但高于默认控件模板。需注意:
若某页中也定义了同名x:Key样式,会覆盖 App 级资源(仅限该页)
TargetType样式可被子类继承(如
CustomLabel : Label也会命中) 建议用
AppThemeBinding支持深色/浅色模式自动切换,避免硬编码颜色
进阶:按主题分离资源字典
把样式拆到独立文件(如
Styles/GlobalStyles.xaml),再在 App.xaml 中合并:
便于维护、协作和后续适配多主题(如加一个
DarkTheme.xaml动态替换)。
基本上就这些。不复杂但容易忽略的是:确保
TargetType类型拼写正确、XAML 命名空间已引入(MAUI 默认已配好),以及热重载有时需重启才能看到新样式的全局效果。
