Skip to content

Implement the Theme Selector control as shown in ASP.NET Web Forms Demos.

License

Notifications You must be signed in to change notification settings

DevExpress-Examples/asp-net-web-forms-implement-theme-selector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASP.NET Web Forms Controls - How to implement the Theme Selector control shown in DevExpress Demos

This example demonstrates how to implement the Theme Selector control as shown in ASP.NET Web Forms Demos.

Theme Selector

Overview

Follow the steps below to implement a theme selector:

  1. Copy files from the folders listed below to the corresponding folders in your application.

  2. Register ThemeSelector and ThemeParametersSelector controls in the web.config file:

    <pages>
      <controls>
        <!-- ... -->
        <add src="~/UserControl/ThemeParametersSelector.ascx" tagName="ThemeParametersSelector" tagPrefix="dx" />
        <add src="~/UserControl/ThemeSelector.ascx" tagName="ThemeSelector" tagPrefix="dx" />
      </controls>
    </pages>
  3. Once a user selects a theme, the code example writes that theme to cookies [writes to cookies???]. To apply this theme, handle the Application.PreRequestHandlerExecute event in the Global.asax file as follows:

    protected void Application_PreRequestHandlerExecute(object sender, EventArgs e) {
        DevExpress.Web.ASPxWebControl.GlobalTheme = Utils.CurrentTheme;
        Utils.ResolveThemeParametes();
    }
  4. In the master page, add ThemeSelector and ThemeParametersSelector controls as follows:

    <form id="form1" runat="server">
        <header>
            <dx:ASPxPanel runat="server" ClientInstanceName="TopPanel" CssClass="header-panel" FixedPosition="WindowTop" EnableTheming="false">
                <PanelCollection>
                    <dx:PanelContent>
                        <a class="right-button icon cog right-button-toggle-themes-panel" href="javascript:void(0)" onclick="DXDemo.toggleThemeSettingsPanel(); return false;"></a>
                    </dx:PanelContent>
                </PanelCollection>
            </dx:ASPxPanel>
        </header>
        <div class="main-content-wrapper">
            <section class="top-panel clearfix top-panel-dark">
                <dx:ASPxButton runat="server" Text="Change Theme Settings" CssClass="theme-settings-menu-button adaptive"
                    EnableTheming="false" AutoPostBack="false" ImagePosition="Right" UseSubmitBehavior="false">
                    <Image SpriteProperties-CssClass="icon angle-down theme-settings-menu-button-image" />
                    <FocusRectBorder BorderWidth="0" />
                    <ClientSideEvents Click="DXDemo.toggleThemeSettingsPanel" />
                </dx:ASPxButton>
            </section>
            <dx:ASPxPanel runat="server" ClientInstanceName="ThemeSettingsPanel" CssClass="theme-settings-panel"
                FixedPosition="WindowRight" Collapsible="true" EnableTheming="false" ScrollBars="Auto">
                <SettingsCollapsing AnimationType="Slide" ExpandEffect="PopupToLeft" ExpandButton-Visible="false" />
                <Styles>
                    <ExpandBar Width="0" />
                    <ExpandedPanel CssClass="theme-settings-panel-expanded"></ExpandedPanel>
                </Styles>
                <PanelCollection>
                    <dx:PanelContent>
                        <div class="top-panel top-panel-dark clearfix">
                            <dx:ASPxButton runat="server" Text="Change Theme Settings" CssClass="theme-settings-menu-button"
                                EnableTheming="false" AutoPostBack="false" ImagePosition="Right" HorizontalAlign="Left" UseSubmitBehavior="false">
                                <Image SpriteProperties-CssClass="icon angle-down theme-settings-menu-button-image" />
                                <FocusRectBorder BorderWidth="0" />
                                <ClientSideEvents Click="DXDemo.toggleThemeSettingsPanel" />
                            </dx:ASPxButton>
                        </div>
                        <div class="theme-settings-panel-content">
                            <dx:ThemeSelector ID="ThemeSelector" runat="server" />
                            <% if(Utils.CanApplyThemeParameters) { %>
                            <dx:ThemeParametersSelector ID="ThemeParametersSelector" runat="server" />
                            <% } %>
                        </div>
                    </dx:PanelContent>
                </PanelCollection>
            </dx:ASPxPanel>
        </div>
        <div style="clear: both;">
            <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
            </asp:ContentPlaceHolder>
        </div>
    </form>

Files to Review

More Examples

Does this example address your development requirements/objectives?

(you will be redirected to DevExpress.com to submit your response)