1- @inherits LayoutComponentBase
1+ @using MudBlazor .ThemeManager .TestApp .MudThemePresets
2+ @inherits LayoutComponentBase
23
3- <MudThemeProvider @ref =" @_mudThemeProvider" Theme =" _themeManager.Theme" @bind-IsDarkMode =" @_isDarkMode" />
4+ <MudThemeProvider @bind-IsDarkMode =" @_isDarkMode"
5+ @ref =" @_mudThemeProvider"
6+ Theme =" _themeManager.Theme" />
47<MudPopoverProvider />
58<MudDialogProvider />
69<MudSnackbarProvider />
710
811<MudLayout >
9- <MudAppBar Elevation =" _themeManager.AppBarElevation" >
10- <MudIconButton Icon =" @Icons.Material.Filled.Menu" Color =" Color.Inherit" Edge =" Edge.Start" OnClick =" @((e) => DrawerToggle())" />
12+ <MudAppBar Elevation =" _themeManager.AppBarElevation" >
13+ <MudIconButton Color =" Color.Inherit"
14+ Edge =" Edge.Start"
15+ Icon =" @Icons.Material.Filled.Menu"
16+ OnClick =" @((e) => DrawerToggle())" />
1117 <MudSpacer />
12- <MudIconButton Icon =" @Icons.Material.Filled.DarkMode" Color =" Color.Inherit" OnClick =" @((e) => DarkModeToggle())" Edge =" Edge.End" />
18+ <MudIconButton Color =" Color.Inherit"
19+ Edge =" Edge.End"
20+ Icon =" @Icons.Material.Filled.DarkMode"
21+ OnClick =" @((e) => DarkModeToggle())" />
1322 </MudAppBar >
14- <MudDrawer @bind-Open =" _drawerOpen" ClipMode =" _themeManager.DrawerClipMode" Elevation =" _themeManager.DrawerElevation" >
15- <MudText Typo =" Typo.h6" Class =" px-4 pt-2" >Theme Manager</MudText >
16- <MudText Typo =" Typo.body2" Class =" px-4 mud-text-secondary" >Test Application</MudText >
23+ <MudDrawer @bind-Open =" _drawerOpen"
24+ ClipMode =" _themeManager.DrawerClipMode"
25+ Elevation =" _themeManager.DrawerElevation" >
26+ <MudText Class =" px-4 pt-2"
27+ Typo =" Typo.h6" >
28+ Theme Manager
29+ </MudText >
30+ <MudText Class =" px-4 mud-text-secondary"
31+ Typo =" Typo.body2" >
32+ Test Application
33+ </MudText >
1734 <NavMenu />
1835 </MudDrawer >
1936 <MudMainContent >
20- <MudContainer MaxWidth =" MaxWidth.False" Class =" mt-16 px-16" >
37+ <MudContainer Class =" mt-16 px-16"
38+ MaxWidth =" MaxWidth.False" >
2139 @Body
2240 </MudContainer >
2341 </MudMainContent >
2442 <MudThemeManagerButton OnClick =" @((e) => OpenThemeManager(true))" />
25- <MudThemeManager Open =" _themeManagerOpen" OpenChanged =" OpenThemeManager" Theme =" _themeManager" ThemeChanged =" UpdateTheme" IsDarkMode =" @_isDarkMode" />
43+ <MudThemeManager IsDarkMode =" @_isDarkMode"
44+ Open =" _themeManagerOpen"
45+ OpenChanged =" OpenThemeManager"
46+ Theme =" _themeManager"
47+ ThemeChanged =" UpdateTheme"
48+ ThemePresets =" _themePresets" />
2649</MudLayout >
2750
2851@code {
2952 private ThemeManagerTheme _themeManager = new ();
3053 private MudThemeProvider _mudThemeProvider ;
54+ private IEnumerable <IThemePreset >? _themePresets ;
3155
3256 private bool _isDarkMode ;
3357 private bool _drawerOpen = true ;
3458 private bool _themeManagerOpen ;
3559
60+
3661 private void DrawerToggle ()
3762 {
3863 _drawerOpen = ! _drawerOpen ;
3964 }
4065
66+
4167 private void OpenThemeManager (bool value )
4268 {
4369 _themeManagerOpen = value ;
4470 }
4571
72+
4673 private void DarkModeToggle ()
4774 {
4875 _isDarkMode = ! _isDarkMode ;
4976 StateHasChanged ();
5077 }
5178
79+
5280 private void UpdateTheme (ThemeManagerTheme value )
5381 {
5482 _themeManager = value ;
5583 StateHasChanged ();
5684 }
5785
86+
5887 protected override async Task OnAfterRenderAsync (bool firstRender )
5988 {
6089 if (firstRender )
6190 {
6291 _isDarkMode = await _mudThemeProvider .GetSystemPreference ();
6392 StateHasChanged ();
6493 }
94+
6595 await base .OnAfterRenderAsync (firstRender );
6696 }
97+
98+
99+ protected override void OnInitialized ()
100+ {
101+ _themePresets = [new CustomThemePreset01 (), new CustomThemePreset02 ()];
102+ }
67103}
0 commit comments