2009-01-12 4 views
1

J'utilise des logos comme un exemple. J'essaie d'utiliser des thèmes/habillages pour la première fois dans ASP.NET - et j'essaie juste de comprendre exactement ce qu'ils me permettent de faire. Dans la mesure où je peux dire que les thèmes sont principalement pour changer les contrôles comme les boutons, qui peuvent être modifiés en utilisant des images. Mais y a-t-il un moyen de peaufiner un «logo» ou d'autres graphiques en utilisant des thèmes? En lisant la documentation je ne pouvais pas voir immédiatement une façon de le faire. En utilisant les thèmes, vous pouvez facilement définir la source d'un contrôle Image ASP.NET pour être différent par thème.Est-ce qu'ASP.NET a intégré le support pour les logos skinning?

Répondre

4

Vous pouvez facilement définir une image/logo en utilisant des thèmes/skins. Par exemple. si vous avez un contrôle d'image comme ceci:

<asp:Image id="imgLogo" runat="server" SkinId="logo" ... /> 

Dans vos fichiers de la peau, vous pouvez alors l'image specifiy à afficher, par exemple dans App_Themes/theme1/logo.skin:

<asp:Image runat="server" SkinId="logo" ImageUrl="~/images/logo1.png" /> 

Et App_Themes/theme2/logo.skin:

<asp:Image runat="server" SkinId="logo" ImageUrl="~/images/logo2.png" /> 

Ce ne se limite pas à la propriété ImageUrl. Vous pouvez définir la plupart des propriétés des contrôles à partir des fichiers d'habillage.

1

J'ai récemment utilisé des thèmes ASP.net pour créer un site de marque dynamique avec différents logos et autres images en fonction de l'affilié qui a envoyé l'utilisateur sur le site. Cela ressemble à ce que vous allez pour. Pour ce faire, j'ai fait ce qui suit:

  1. Créé plusieurs thèmes, y compris css et images (aucun fichier skin n'a été utilisé). Vous pouvez utiliser des références relatives dans votre css pour afficher les images d'arrière-plan stockées dans votre dossier de thème.
  2. Créé ma propre classe de page qui remplace l'événement OnPreInit et définit Page.Theme à quel que soit le thème que je détermine doit être utilisé. Cela est basé sur des cookies pour moi, mais pourrait être basé sur la façon dont vous voulez identifier l'utilisateur.
  3. Assurez-vous que toutes vos pages héritent de votre nouvelle classe de pages.