Skip to main content
All docs
V25.1

ITheme Interface

An interface that defines theme API members (properties and methods).

Namespace: DevExpress.Blazor

Assembly: DevExpress.Blazor.Resources.v25.1.dll

NuGet Package: DevExpress.Blazor.Resources

Declaration

public interface ITheme

The following members return ITheme objects:

Remarks

The following methods use ITheme as parameter type:

RegisterTheme(ITheme)
Registers a DevExpress Blazor theme.
SetTheme(ITheme)
Applies a theme to an application.

Call the RegisterTheme(ITheme) method in the App.razor file to register a theme in your Blazor application:

<head>
    @*...*@
    @DxResourceManager.RegisterTheme(Themes.Fluent)
</head>

To change an application theme at runtime, inject IThemeChangeService with the [Inject] attribute into a Razor page and call the SetTheme(ITheme) method:

@inject IThemeChangeService ThemeChangeService
@rendermode InteractiveServer

<DxButton Text="Blazing Berry" Click="() => HandleClick(Themes.BlazingBerry)" />
<DxButton Text="Fluent" Click="() => HandleClick(Themes.Fluent)" />
<DxButton Text="Fluent Dark" Click="() => HandleClick(AppThemes.FluentDark)" />

@code {
    void HandleClick(ITheme theme) {
        ThemeChangeService.SetTheme(theme);
        // ...
    }
    public class AppThemes {
        public static ITheme FluentDark = Themes.Fluent.Clone(properties => {
            properties.Name = "FluentDark";
            properties.Mode = ThemeMode.Dark;
        });
        public static List<ITheme> All { get; private set; } = new List<ITheme>() {
            Themes.BlazingBerry,
            Themes.Fluent,
            FluentDark
        };
    }
}
See Also