ASP.NET ha il supporto integrato per i loghi skinning?
Domanda
Uso i loghi solo come esempio.
Sto provando a usare temi / skin per la prima volta in ASP.NET - e sto solo cercando di capire esattamente cosa mi permetteranno di fare.
Per quanto ne so, i temi sono principalmente per cambiare i controlli come i pulsanti, che possono essere modificati usando le immagini. Ma c'è un modo per scuoiare un "logo" o altri elementi grafici usando temi? Leggendo la documentazione non sono riuscito a vedere immediatamente un modo per farlo.
Soluzione
Puoi facilmente impostare un'immagine / logo usando temi / skin. Per esempio. se hai un controllo immagine come questo:
<asp:Image id="imgLogo" runat="server" SkinId="logo" ... />
Nei tuoi file skin, puoi quindi specificare l'immagine da visualizzare, ad es. in App_Themes / theme1 / logo.skin:
<asp:Image runat="server" SkinId="logo" ImageUrl="~/images/logo1.png" />
E in App_Themes / theme2 / logo.skin:
<asp:Image runat="server" SkinId="logo" ImageUrl="~/images/logo2.png" />
Questo non è limitato alla proprietà ImageUrl. Puoi impostare la maggior parte delle proprietà dei controlli dai file skin.
Altri suggerimenti
Di recente ho usato i temi ASP.net per creare un sito con marchio dinamico con loghi e altre immagini diversi a seconda dell'affiliato che ha inviato l'utente al sito. Questo suona come quello che stai cercando. A tale scopo, ho fatto quanto segue:
- Creato diversi temi, inclusi css e immagini (non sono stati utilizzati file skin). Puoi usare riferimenti relativi nei tuoi CSS per visualizzare immagini di sfondo memorizzate nella cartella del tuo tema.
- Creata la mia classe di pagine che sovrascrive l'evento OnPreInit e imposta Page.Theme su qualsiasi tema che determino debba essere usato. Questo si basa sui cookie per me, ma potrebbe essere basato sul modo in cui si desidera identificare l'utente.
- Assicurati che tutte le tue pagine ereditino dalla tua nuova classe di pagine.
usando i temi potresti facilmente impostare la sorgente di un controllo Image ASP.NET su diverso per tema. (anche le dimensioni se fossero diverse).
Panoramica dei temi: http://msdn.microsoft.com/en- us / library / ykzx33wh.aspx