Notka: Niniejsze opracowanie powstało w oparciu o następujące źródła:
|
- Najczęściej jest to określane mianem (tematu, motywu, skórki, kompozycji, ...)
- Zwykle wykorzystywane są do tego różne arkusze styli (CSS)
Co zawiera dany temat/motyw?
- Skórkę (Skin) - plik z rozszerzeniem .skin, który zawiera ustawienia właściwości dla kontrolek
- Kaskadowy arkusz styli (CSS)
- Obrazki oraz inne zasoby
Tworzenie tematu
- Należy dodać folder specjalny: App_Themes
- W folderze App_Themes tworzymy indywidualne foldery dla każdego tematu, a nazwa folderu odpowiada nazwie tematu
- W folderze tematu dodajemy pliki skórek, arkusze styli, obrazki, itp...
- Przypisujemy temat:
- do strony: <%@ Page Theme="ThemeName" %>lub <%@ Page StyleSheetTheme="ThemeName" %>
- do witryny w pliku Web.config: <pages theme="ThemeName" /> lub <pages StyleSheetTheme="ThemeName" />
- ASP.NET wspiera także możliwość wykorzystania tzw. tematów globalnych (Global Themes)
- wszystkie strony na danym serwerze mogą wykorzystywać ten sam temat, mieć ten sam wygląd, itp...
- w tym celu należy umieścić temat w jednym z katalogów:
- %windows%\Microsoft.NET\Framework\version\ASP.NETClientFiles\Themes
- IISRootWeb\aspnet_client\system_web\version\Themes
- Uwaga: należy pamiętać, że ViusalStudio nie rozpoznaje tematów globalnych, ale później w przeglądarce wyświetlane są prawidłowo
Zajmijmy się teraz plikami skórek (Skin Files),w celu utworzenia pliku skórki dodajemy plik typu Skin. Skórki mogą być:
- domyślne - określający wygląd wszystkich kontrolek pewnego typu
- nazwane - zawierają atrybut SkinId, dzięki któremu możemy kontrolować przypisanie ustawień tylko pewnym kontrolkom
Można również dodawać obrazki do tematu, wtedy w pliku skórki pojawia się np. wpis: <asp:Image ImageUrl="~/App_Themes/Theme1/logo.png" SkinId="Logo" runat="server" />, wtedy na stronie wystarczy wpisać: <asp:Image ID="Image1" SkinID="Logo" runat="server" /> Przyjrzyjmy się kolejności w nadawaniu atrybutów dla kontrolek (od najważniejszego):
- Atrybut Theme w dyrektywie @ Page
- Element <pages theme="ThemeName" /> w pliku Web.config
- Atrybuty lokalne kontrolek
- atrybut StyleSheetTheme w dyrektywie @ Page
- Element <pages StyleSheetTheme="ThemeName" /> w pliku Web.config
Motyw można też ustawić z poziomu kodu programu. Najlepiej zrobić to w obsłudze zdarzenia Page_PreInit, ustawiając właściwość Page.Theme lub Page.StyleSheetTheme, np.:
protected void Page_PreInit(object sender, EventArgs e) { if (Session["theme"] != null) { Page.Theme = (string)Session["theme"]; } }Na dziś to już wszystko, mam nadzieję że udało mi się przybliżyć mechanizm motywów w ASP.NET. W następnej części pojawi się przykład do dzisiejszej teorii.
zobacz cały materiał:
OdpowiedzUsuń70-562: Dostosowanie i Personalizacja Aplikacji Web [PL]