No último post comecei a falar sobre a utilização de temas e skins. Apresentei apenas alguns aspectos básicos associados à definição de skins e de temas. Terminei o artigo a falar sobre como podemos aplicar um tema a uma página. Hoje vou analisar essa aplicação com mais rigor. A verdade é que existem duas formas de aplicarmos um tema: através da utilização da propriedade Theme (usado no último post) ou através da propriedade StyleSheetTheme (ambas pertencentes à classe Page). A diferença reside no que acontece quando definimos as mesmas propriedades de estilo no controlo (aqui estou a falar das propriedades definidas na declaração do controlo no ficheiro aspx) e na skin aplicada. Se quisermos que as definições da skin sejam aplicadas (independentemente de conflitos que possam ocorrer), então devemos utilizar o atributo Theme; se, por outro lado, pretendermos que as definições de estilo do controlo tenham prioridade em caso de conflito, então devemos recorrer à propriedade StyleSheetTheme.
Convém notar que o raciocionio apresentado é apenas válido até à execução do evento Init da página. Daí para a frente, todas as alterações efectuadas ao controlo ao qual foi aplicada a skin serão persistidas e apresentadas ao utilizador. Existem várias formas de atribuirmos um valor a estas propriedades. A primeira consiste em recorrer aos atributos Theme e StyleSheetTheme existentes na directiva @Page. Por outro lado, se assim o entendermos, também podemos atribuir os valores pretendidos directamente às propriedades. O único aspecto a ter em consideração nestas situações está relacionado com a altura em que podemos atribuir um valor a estas propriedades.
Os temas e skins são aplicados aos controlos entre o fim do evento PreInit e o evento Init. Portanto, se quisermos atribuir um valor dinamicamente a uma destas propriedades devemos ter em atenção que o evento PreInit é o último momento em que conseguimos influenciar a utilização de temas e skins. No próximo dia vou apresentar um exemplo prático associado à alteração dinâmica de temas e skins numa página.
posted on Wednesday, April 13, 2005 11:21 PM