Themes and Skins Themes and Skins     Uma Skin é uma descrição do aspecto de controlos. Um Theme é uma colecção de Skins. Uma Skin permite-nos definir o aspecto visual que será aplicado a um determinado controlo. Um Theme é usado para agrupar um conjunto de Skins.  Para manter um aspecto consistente entre as diferentes páginas de um Web Site em ASP.NET 1.1 usavam-se CSS – Cascading Style Sheets.  ASP.NET 2.0 introduz um novo modo de conseguir essa consistência, podendo aplicar-se temas a todo o site, mantendo consistência para todos os controlos Web. 1 Criação de Themes e Skins  Um theme contém um ou mais ficheiros skin.  Cada ficheiro skin define o aspecto de um tipo de controlo, por ex. Button, Label.  Na raiz da aplicação Web deve-se criar uma pasta especial App_Themes.  No interior desta pasta podemos definir vários temas introduzindo um directório para cada tema.  Cada directório de um tema pode conter uma skin por omissão para alguns controlos, que é usada quando indicamos apenas o theme aplicado à página e não definimos explicitamente a skin aplicada a um controlo. 2 Criação de Skins – 1/3  Um ficheiro de skin é um ficheiro com a extensão .skin  Um ficheiro de skin pode conter a definição de vários skins para vários controlos, mas . . .  Para simplificar a manutenção e identificação, pode-se optar por uma das 2 seguintes aproximações: 1. Usar um ficheiro de skin para definir os estilos (skins) para cada tipo de controlo, e dar ao ficheiro o nome desse controlo (por ex. “Button.skin”) 2. Usar um ficheiro de skin para definir apenas os estilos de uma skin em vários controlos. Neste caso o ficheiro terá o nome da skin (por ex. Colorful.skin). Normalmente o ficheiro Default.skin conterá as definições por omissão para vários controlos.  Para adicionar um ficheiro de skin a um projecto devemos seleccionar no Solution Explorer: Add New Item > Skin File 3 Criação de Skins – 2/3  Os ficheiros de skin são constituídos pelo source view dos controlos excluindo o atributo id.  Num formulário Web: formata-se um controlo através da janela de propriedades, comuta-se para source view, copia-se o elemento html que define esse controlo, e coloca-se no ficheiro skin, e finalmente remove-se o atributo id e adiciona-se o atributo skinid. 4 Criação de Skins – 3/3 A primeira definição é a skin por omissão para controlos Button. A seguinte define a skin “bold”. A atribuição de um nome à skin é feita através do atributo skinid. Cada skin é identificada pelo valor da propriedade skinid. A não atribuição de um valor à propriedade skinid faz com que a definição de estilo do controlo seja associada à skin por omissão do theme. 5 Aplicação de Themes e Skins  Para aplicar um theme a uma página adicionámos o atributo Theme à directiva @Page:  <%@ Page Language="C#" Theme=“Tema1” AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>  Para aplicar skins a controlos específicos adicionámos o atributo skinid para cada controlo atribuindo-lhe como valor o nome da skin.  <asp:Label id="Label1" skinid=“fundoVerde" ... </asp:Label>  Se um controlo não especifica o atributo skinid, então a skin por omissão para esse tipo de controlo será aplicada, se existir. 6