Avalonia如何使用Material.Avalonia主题库 Avalonia MD主题库用法

在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 属性或使用配套命名空间。例如:

  • 按钮:(支持 PrimarySecondaryOutlined
  • 文本框:(自动带浮动标签效果)
  • 对话框:引用 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。