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