Silverlight, estilos y el atributo BasedOn.

Tras los bucólicos días que he pasado al sur del Moncayo vuelve el hombre, no tan descansado como debería pero menos es nada.

Como ya hemos visto en otros post, me encuentro (el 20% de mi jornada laboral) en un proceso de aprendizaje de Silverlight. Tras leer algunos libros sobre el tema, comencé a desarrollar BookLight (;-) codename de una app que gestiona la biblioteca de la empresa) y gracias a esta app, me estoy encontrando con cosas interesantes y otras no tan interesantes.

Una de esas cosas, son los estilos.

Silverlight, nos permite generar una “suite” de estilos que posteriormente podemos ir asignando a los distintos controles de manera que en el momento que modificamos estos estilos, actualiza el aspecto de todos los controles que los “consumen”.

Estos estilos no son exactamente iguales a los (geniales) cas, aunque algo tienen en común. Definen el aspecto del control y en Silverlight (y dpb) pueden definir parte del comportamiento del control, tal como animaciones.

Cuando trabajamos con Blend y nos disponemos a crear estos estilos, nos da la posibilidad de crear el estilo de forma “global” (guardándolo en el app.xaml) o de forma “local” añadiéndolo al propio documento. Estos estilos pueden heredar de otros, y además es sumamente sencillo hacer esto, solo que en Blend no es muy aparente (si os digo la verdad yo no he encontrado la forma, lo cual puede ser normal por otra parte).

Para heredar unos estilos de otros vamos a usar el atributo BasedOn por medio del cual indicaremos cual es el estilo padre. Podeís ver su uso aquí:

<Style x:Name="BaseText" TargetType="TextBlock">
<Setter Property="FontFamily" Value="./../Fonts/Fonts.zip#Arial" />
<Setter Property="TextWrapping" Value="Wrap" />
<Setter Property="FontWeight" Value="normal" />
</Style>
<Style x:Name="BookLight.BookingBook.Title" TargetType="TextBlock" BasedOn="{StaticResource BaseText}" >
<Setter Property="FontSize" Value="28" />
<Setter Property="Margin" Value="10, 10, 10, 10" />
</Style>
<Style x:Name="BookLight.BookingBook.Title.Success" TargetType="TextBlock" BasedOn="{StaticResource BookLight.BookingBook.Title}" >
<Setter Property="Foreground" Value="#FF66CC00" />
</Style>
<Style x:Name="BookLight.BookingBook.Title.Error" TargetType="TextBlock" BasedOn="{StaticResource BookLight.BookingBook.Title}" >
<Setter Property="Foreground" Value="#FFFF6600" />
</Style>

Y esto es todo. Se despide vuestro amable y querido narrador no sin antes hablaros de The Phenomenal Handclap Band formada por gente de The Jon Spencer Blues Explosion y Mooney Suzuki.

2 pensamientos en “Silverlight, estilos y el atributo BasedOn.

  1. Hola Cesar, como va?
    Voy a probar esto que hablas sobre los Based On d silverligth,,
    me gustaria comunicarme con vos. ya que estoy disñando en blend, estoy bastante avanzado pero tengo un problema sin resolver a la hora de aplicar un static resource con informaciond de color sobre un Setter Value en los estilos, siendo que el StaticResource “Brush” esta definido en un xaml externo,…

    no le encuentro ninguna solucion,

    Bueno,, Saludos,..
    espero podamos comunicarnos si queres charlar un poco sobre blend.. :]

    M#Url

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s