Trigger definido en un estilo

Modificar propiedades al producirse un evento, pero definiendo el evento en un estilo

 
Publicado el 16/Abr/2007
Actualizado el 16/Abr/2007
Autor: Guillermo 'guille' Som

Modificar propiedades al producirse un evento, pero definiendo el evento en un estilo.

 

 

Introducción:

Ahora le toca a los "triggers" pero en vez de estar definido directamente en el control, en esta ocasión está definido como un estilo, y aplicando ese estilo a un control, en este caso una etiqueta, hacer que haga algo con algunas de las propiedades cuando el evento se produzca.

Por supuesto, todo esto sin escribir ni una línea de código, al menos de código de un lenguaje como Visual Basic o C#, ya que todo está en código XAML.

Veamos el código y a ver que te cuento...

<Grid Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="3">
    <Grid.Resources>
        <Style x:Key="lblTrigger" TargetType="Label">
            <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="true">
                <Setter Property="Background" Value="Firebrick" />
                <Setter Property = "Foreground" Value="White"/>
            </Trigger>
            </Style.Triggers>
        </Style>
    </Grid.Resources>
    <Label HorizontalAlignment="Left" Name="Label1" Width="72"
           Style="{StaticResource lblTrigger}">Escribe:</Label>
</Grid>

Como puedes imaginar, este Grid está dentro de otro Grid, pero eso no es importante.

En los recursos del Grid se define un estilo (Style) en el que indico que se debe aplicar a los controles de tipo Label. El estilo define un Trigger (para un evento) en el que le indico que se produzca cuando la propiedad IsMouseOver sea True, es decir, cuando el cursor del ratón esté por encima de ese control.

Como lo que quiero es cambiar el valor de ciertas propiedades de la etiqueta, hay que añadir una serie de "seteadores" (je, je, esto del espanglish, en fin), bueno, que hay que asignar ciertas propiedades y eso se hace por medio de <Setter al que se le indica que propiedad hay que asignar y que valor hay que darle.
En este ejemplo, se asignan los valores a dos propiedades, por eso hay dos Setter.

Para aplicar este "estilo" a una etiqueta, hay que usar Style = "{StaticResource seguido del nombre del estilo ese que hemos creado.

Y ya está, cuando el ratón pase por encima de la etiqueta, el color de fondo (Background) se pondrá de rojo como un ladrillo ardiendo y el color de la letra (Foreground) se quedará blanca... un guiño

 

Ya no te digo nada... porque después de las dos últimas "cosillas" que he publicado hoy, creo que ya sabes porqué escribo estas cosas así casi tan escuetas... pero bueno, si estás buscando cómo hacer esto que explico... pues mejor que mejor... y si te esperabas algo más "profundo", pues lo siento... pero... esto es lo que hay, je, je... en fin...

 

Nos vemos.
Guillermo

 



Ir al índice principal de el Guille

Valid XHTML 1.0 Transitional