Oui, les hiérarchies de contrôle peuvent être modifiées avec des thèmes.
Ceci est rendu possible par ITemplate propriétés Themeable.
Si, par exemple, vous avez eu un contrôle personnalisé qui a simplement un thématisable Table des matières propriété vous pourriez dire:
<custom:MyThemeableControl runat="server">
<Contents>
... any valid *.skin markup here
</Contents>
</custom:MyThemeableControl>
Maintenant, vous pourriez échanger les contrôles à l'intérieur contenu pour différents thèmes comme suit: - pour ThemeA vous auriez la peau suivante:
<custom:MyThemeableControl runat="server">
<Contents>
<asp:Button runnat="server" />
</Contents>
</custom:MyThemeableControl>
Et pour ThemeB vous auriez le fol peau Lowing:
<custom:MyThemeableControl runat="server">
<Contents>
<asp:TextBox runnat="server" />
</Contents>
</custom:MyThemeableControl>
Puis cette page rendrait un Bouton sous ThemeA et un TextBox sous ThemeB:
<@Page Theme="ThemeA">
<custom:MyThemeableControl runat="server" />
<@Page Theme="ThemeB">
<custom:MyThemeableControl runat="server" />