在Avalonia中,通过在App.xaml的Application.Resources中定义无x:Key、指定TargetType的Style,可为所有同类型控件(如Button)设置全局默认样式;显式设置Style属性或Style="{x:Null}"会覆盖或禁用该默认样式。
在Avalonia中,要将样式应用到所有同类型控件(例如所有Button),只需在应用级资源(App.xaml)或窗口/用户控件的Resources中定义一个**不带x:Key的Style**,并设置TargetType为对应控件类型即可。Avalonia会自动将其作为该类型的默认样式,应用于所有未显式指定Style的实例。
这是最常用、最推荐的方式,确保整个应用统一外观:
App.xaml(通常位于项目根目录)内添加Style,省略x:Key属性TargetType(如Button、TextBox等,支持完整类名或简写,推荐用简写+xmlns映射)示例(App.xaml):
全局Style默认作用于整个Application生命周期:
Style属性的Button都会自动使用该StyleStyle="{StaticResource MyButtonStyle}",则优先使用该显式引用的StyleStyle="{Null}",则完全跳过默认Style(回归控件默认模板)如需保留部分默认行为并仅修改特定属性,可基于Avalonia内置Style扩展:
BasedOn引用系统默认Style(需先获取其Key,常见为{x:Type Button})Resources中定义多个同TargetType的Style,但只有第一个(无x:Key)生效;后续有x:Key的可用于手动复用示例(扩展默认Button样式):
如果样

TargetType拼写正确(区分大小写,且必须与控件实际类型完全一致)Style="{x:Null}"或显式引用了其他StyleDeveloperTools(启用AppBuilder.UseDeveloperTools())在运行时查看元素的实际Style来源App.xaml被正确加载(检查Program.cs中AppBuilder是否调用了.UsePlatformDetect().SetupWithLifetime(...))