Tutorial de ASP.NET
Vista Previa de ASP.NET 2.0

Skins identificados en un Tema

Por defecto, la definición de un control en un fichero de skin se aplica a todos los controles del mismo tipo en las páginas de la aplicación. Sin embargo, podemos querer que los controles del mismo tipo tengan apariencias diferentes en distintas partes de la aplicación. Por ejemplo, podríamos querer que el texto de un control Label aparezca en negrita en una parte i en italic en otra. Podemor hacer esto mediante skins identificados en un tema.
<a name="named">

Skins Por Defecto e Identificados

Podemos definir diferentes estilos para controles del mismo tipo en un fichero skin mediante la creación de definiciones separadas del control. En las definiciones de los controles pordemos establecer diferentes propiedades SkinID a nombres de nuestra elección, y después establecer este mismo SkinID en los controles de las páginas que tendrán dicho skin aplicado. En ausencia de la propiedad SkinID, se aplica el skin por defecto (uno sin la propiedad SkinID fijada). El siguiente ejemplo muestra diferentes skins para los controles Label y Calendar. Observad que a los controles de una página con un SkinID establecido se les aplica un grupo de estilos diferente al skin por defecto.

C# Skins Identificados en un Tema



Los skins identificados se pueden organizar de diferentes formas dentro de los ficheros de skin de los temas. Debido a que un tema puede contener varios ficheros de skin debemos dividir los skins identificados en diferentes ficheros, de forma que cada uno de estos ficheros contenga las definiciones de controles con el mismo SkinID. Por ejemplo, podemor tener tres ficheros de skin en un Tema, cada uno nombrado según el valor de SkinID:

/WebSite1
/App_Themes
/MyTheme
Default.skin
Red.skin
Blue.skin

Alternativamente podríamos agrupar los ficheros de control según el tipo de control, de forma que cada skin contendría un conjunto de definiciones de skin para un control particular:

/WebSite1
/App_Themes
/MyTheme
GridView.skin
Calendar.skin
Label.skin

Podemos incluso dividir estos ficheros de skin basándonos en las áreas de nuestro sitio, por ejemplo:

/WebSite1
/App_Themes
/MyTheme
HomePage.skin
DataReports.skin
Forums.skin

La posibilidad de tener varios ficheros de skins en un mismo directorio Theme nos da esta flexibilidad de organización. Además nos permite compartir fácilmente las definiciones de skins con otros o copiar las definiciones de un tema a otro sin tener que editar otros ficheros de skin de un Tema.