项目

本文档有多个版本。请选择最适合您的选项。

UI

Blazor UI:基础主题

基础主题是专为Blazor UI实现的主题方案。这是一个极简风格的主题,在原生 Bootstrap 框架基础上未添加任何额外样式。您可以将基础主题作为底层主题,并基于它构建自己的主题或样式。具体请参阅自定义章节。

如果您需要专业且具备企业级Ready的主题,可查看作为 ABP 组成部分的 Lepton主题

关于主题系统的完整说明,请参阅 主题文档

安装指南

如需手动安装此主题,请按以下步骤操作:

  1. 确保已完成AspNetCore基础主题的安装步骤
  2. 在Web项目中安装Volo.Abp.AspNetCore.Components.Server.BasicTheme NuGet包
  3. 在Blazor UI项目的模块类[DependsOn(...)]属性中添加AbpAspNetCoreComponentsServerBasicThemeModule
  4. App.razor文件中进行以下调整:
    • 在页面顶部添加引用

      @using Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling
      
    • 按以下方式替换脚本和样式包:

      <AbpStyles BundleName="@BlazorBasicThemeBundles.Styles.Global" />
      
      <AbpScripts BundleName="@BlazorBasicThemeBundles.Scripts.Global" />
      

按以下方式更新Routes.razor文件:

@using Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic
@using Volo.Abp.AspNetCore.Components.Web.Theming.Routing
@using Microsoft.Extensions.Options
@inject IOptions<AbpRouterOptions> RouterOptions
<Router AppAssembly="typeof(Program).Assembly" AdditionalAssemblies="RouterOptions.Value.AdditionalAssemblies">
    <Found Context="routeData">
        <AuthorizeRouteView RouteData="routeData" DefaultLayout="typeof(MainLayout)">
            <NotAuthorized>
                <RedirectToLogin />
            </NotAuthorized>
        </AuthorizeRouteView>
    </Found>
</Router>

布局结构

基础主题应用布局

应用布局除包含上述通用部分外,还实现了以下组件区域:

自定义方案

您可通过两种方式自定义此主题:

覆盖样式/组件

此方案中,您可继续使用NuGet和NPM包形式提供的主题,并按需自定义特定部分:

样式覆盖

您可以直接在应用程序的全局样式文件中覆盖样式定义。

组件覆盖

请参阅 自定义/覆盖组件 了解如何替换组件、定制和扩展用户界面。

覆盖菜单项

基础主题支持使用自定义组件覆盖单个菜单项。您可创建自定义组件并在菜单贡献者中调用UseComponent扩展方法。

using Volo.Abp.UI.Navigation;

//...

context.Menu.Items.Add(
  new ApplicationMenuItem("Custom.1", "我的自定义菜单", "#")
    .UseComponent(typeof(MyMenuItemComponent)));
<li class="nav-item">
    <a href="#" class="nav-link">
        我的自定义菜单
    </a>
</li>

复制源码并自定义

Blazor Server项目目录中执行以下 ABP CLI 命令,将源代码复制至您的解决方案:

abp add-package Volo.Abp.AspNetCore.Components.Server.BasicTheme --with-source-code --add-to-solution-file

随后进入下载的Volo.Abp.AspNetCore.Components.Server.BasicTheme项目目录并执行:

abp add-package Volo.Abp.AspNetCore.Components.Web.BasicTheme --with-source-code --add-to-solution-file


或者,您也可以下载基础主题的源代码,手动将项目内容复制到解决方案中,重新配置包/模块依赖关系(参见上文安装章节了解原始安装方式),并根据应用需求自由定制主题。

扩展阅读

在本文档中