直接在 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),在
<application.styles></application.styles>中引入 Material 主题。两种常用方式: 基础引入(含默认浅色主题):
注意:Material 样式应放在
FluentTheme之后,避免被默认样式覆盖。
在界面中使用 Material 风格控件
无需替换原有控件类型,只需加
Classes属性或使用配套命名空间。例如: 按钮:
<button content="保存" classes="Primary"></button>(支持
Primary、
Secondary、
Outlined) 文本框:
<textbox placeholdertext="请输入邮箱"></textbox>(自动带浮动标签效果) 对话框:引用
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。
