An Abp Blazor Theme based Ant-Design-Blazor
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

52 lines
1.6 KiB

using System.Threading.Tasks;
using AntDesign;
using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings;
using Microsoft.AspNetCore.Components;
namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Themes.AntDesignTheme;
public partial class DefaultLayout
{
[Inject]
protected IAntDesignSettingsProvider AntDesignSettingsProvider { get; set; }
protected bool Collapsed { get; set; }
protected MenuPlacement MenuPlacement { get; set; }
protected MenuTheme MenuTheme { get; set; }
protected string HeaderClass { get; set; }
protected SiderTheme SiderTheme { get; set; }
protected string SiderStyle { get; set; } = "min-width:256px";
protected override async Task OnInitializedAsync()
{
await SetLayout();
AntDesignSettingsProvider.SettingChanged += OnSettingChanged;
}
protected virtual async Task OnSettingChanged()
{
await SetLayout();
await InvokeAsync(StateHasChanged);
}
private async Task SetLayout()
{
MenuTheme = await AntDesignSettingsProvider.GetMenuThemeAsync();
MenuPlacement = await AntDesignSettingsProvider.GetMenuPlacementAsync();
SiderTheme = MenuTheme == MenuTheme.Light ? SiderTheme.Light : SiderTheme.Dark;
HeaderClass = MenuPlacement == MenuPlacement.Top ? "ant-design-header-top" : "ant-design-header-left";
HeaderClass = MenuTheme == MenuTheme.Light ? $"{HeaderClass} {HeaderClass}-light" : HeaderClass;
}
protected virtual void OnCollapse()
{
Collapsed = !Collapsed;
SiderStyle = Collapsed ? "" : "min-width:256px";
}
}