Es una respuesta muy tarde, pero creo que te gustará este ..
Puede cambiar el tema de la página en el evento PreInit, pero no tiene que usar una página base ...
En la página maestra, cree un menú desplegable llamado ddlTema, después de eso, escriba este bloque de código en su Global.asax. . Vea cómo funciona la magia :)
public class Global : System.Web.HttpApplication
{
protected void Application_PostMapRequestHandler(object sender, EventArgs e)
{
Page activePage = HttpContext.Current.Handler as Page;
if (activePage == null)
{
return;
}
activePage.PreInit
+= (s, ea) =>
{
string selectedTheme = HttpContext.Current.Session["SelectedTheme"] as string;
if (Request.Form["ctl00$ddlTema"] != null)
{
HttpContext.Current.Session["SelectedTheme"]
= activePage.Theme = Request.Form["ctl00$ddlTema"];
}
else if (selectedTheme != null)
{
activePage.Theme = selectedTheme;
}
};
}
@this. __curious_geek, ¿por qué prefieres hacerlo en Page_Load no Pre_Int? –