在Avalonia项目中集成Material.Avalonia只需三步:安装NuGet包(如Material.Avalonia 3.7.2及可选扩展)、在App.axaml中按顺序引入Material主题样式(置于FluentTheme之后)、为原生控件添加Classes属性或使用配套功能;支持运行时动态切换深色/浅色主题,自动更新视觉效果。

直接在 Avalonia 项目中集成 Material.Avalonia,核心就三步:装包、配样式、用控件。不需要改架构,也不用重写界面,改几行配置就能让应用拥有标准的 Material Design 外观和深色/浅色主题切换能力。
安装 NuGet 包
确保项目基于 .NET SDK 和 Avalonia 模板(如 avalonia.app),然后执行:
-
dotnet add package Material.Avalonia --version 3.7.2(推荐用最新稳定版) - 如需 DataGrid 或 Dialogs 等高级组件,额外安装对应扩展:
dotnet add package Material.Avalonia.DataGrid
配置 App.axaml 主题样式
打开 App.axaml(注意是 .axaml,不是 .xaml),在 中引入 Material 主题。两种常用方式:
- 基础引入(含默认浅色主题):
- 自定义主题(比如深色紫主色):
注意:Material 样式应放在 FluentTheme 之后,避免被默认样式覆盖。
在界面中使用 Material 风格控件
无需替换原有控件类型,只需加 Classes 属性或使用配套命名空间。例如:
- 按钮:
(支持Primary、Secondary、Outlined) - 文本框:
(自动带浮动标签效果) - 对话框:引用
Material.Avalonia.Dialogs后,调用DialogHost.Show(...)
所有原生 Avalonia 控件(Button、TextBox、ComboBox 等)都会自动获得 Material 视觉风格,包括动效、焦点反馈和禁用态处理。
运行时切换主题
Material.Avalonia 支持代码中动态切换主题,比如响应用户设置:
- 获取当前主题:
Application.Current?.ActualThemeVariant - 切换为深色:
Application.Current.RequestedThemeVariant = ThemeVariant.Dark; - 切换为浅色:
Application.Current.RequestedThemeVariant = ThemeVariant.Light;
切换后,所有控件会自动更新颜色、阴影和对比度,无需手动刷新界面。
基本上就这些。不复杂但容易忽略细节——比如样式加载顺序、命名空间声明、扩展包单独安装。配好之后,你的 Avalonia 应用就真正拥有了跨平台一致、符合 Material 规范的现代 UI。










