wpf 05 - triggers y eventos
TRANSCRIPT
Triggers y Eventos D A N A E A G U I L A R G U Z M Á N .
M C T , M C P , M C T S
D A N A E A G U I L A R @ G M A I L . C O M
Contenido del Módulo Lección 1. Introducción a Triggers
Lección 2. Manejo de eventos
Lección 1. Introducción a Triggers
1. WPF Triggers
2. Tipos de Triggers
3. Property Triggers
4. MultiTriggers
1. WPF Triggers Tienen un conjunto de Setters al igual que los estilos.
Se aplican en base a condiciones.
Cuando la condición se cumple se aplican los Setters
Cuando la condición ya no se cumple se retira la aplicación de los Setters.
2. Tipos de Triggers 1. Property Triggers
Trigger
MultiTrigger
2. Data Triggers DataTrigger
MultiDataTrigger
3. Event Triggers EventTrigger
3. Property Triggers Agregar Triggers en el estilo, el Trigger se accionará
cuando IsMouseOver tenga el valor True
<Style TargetType="{x:Type Button}"> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Foreground" Value="Red"/> <Setter Property="RenderTransform"> <Setter.Value> <RotateTransform Angle="10"/> </Setter.Value> </Setter> </Trigger> </Style.Triggers> …… </Style>
4. MultiTriggers Agregar Triggers en el estilo, y agregar MultiTrigger, el Trigger se accionará cuando todas las condiciones se cumplan (AND)
<Style TargetType="{x:Type Button}"> <Style.Triggers> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True"/> <Condition Property="IsFocused" Value="True"/> </MultiTrigger.Conditions> <Setter Property="Foreground" Value="Red"/> <Setter Property="RenderTransform"> <Setter.Value> <RotateTransform Angle="10"/> </Setter.Value> </Setter> </MultiTrigger> </Style.Triggers> … </Style>
Lección 2. Manejo de eventos 1. Manejando eventos en Windows Forms
2. Eventos enrutados WPF
3. Manejando eventos enrutados
Manejando eventos en Windows Forms 1. Asociar un event handler con un evento
2. Implementar el event handler
button1.Click += new EventHandler(button1_Click);
private void button1_Click(object sender, System.EventArgs e) { // Aquí va el codigo }
Direct
Tunneling
Eventos enrutados WPF Window
Grid
Button TextBlock
TextBlock
ScrollViewer
StackPanel
TextBlock
1.
2.
Bubbling 3.
Eventos enrutados WPF Estrategias de enrutado:
1. Tunneling. Ocurren primero.
Se lanza primero en la raíz y luego avanza hacia abajo hasta el elemento que originó el evento.
Llevan el prefijo Preview, ej.: PreviewMouseDown
Eventos enrutados WPF Estrategias de Enrutado:
2. Direct. • Se lanza solamente en el elemento que originó el evento.
Eventos enrutados WPF Estrategias de Enrutado:
3. Bubbling. Ocurren después de Tunneling.
Se lanza primero en el elemento que originó el evento y luego avanza hacia arriba hasta la raíz.
Manejando eventos enrutados 1. Asociar un event handler con un evento
2. Implementar el event handler
<Button Height="20" Margin="100,80,70,0" Name="miBoton" VerticalAlignment="Top" Click="miBoton_Click">Hacer click!</Button>
private void miBoton_Click(object sender, RoutedEventArgs e) { // Aquí agregar codigo }
WPF RoutedEventArgs
Propiedades de RoutedEventArgs
Propiedades de RoutedEventArgs
Source. El elemento en el árbol lógico que originalmente lanzó el evento.
OriginalSource. El elemento en el árbol visual que originalmente lanzó el evento.
Handled. Asignar el valor True para marcar el evento como manejado, como ya procesado.
RoutedEvent. El evento enrutado asociado a este RoutedEventArgs
Manejando eventos enrutados Interrumpiendo la propagación de los eventos:
Manejando eventos incluso cuando han sido interrumpidos:
private void miBoton_Click(object sender, RoutedEventArgs e) { e.Handled = true; }
miBoton2.AddHandler(UIElement.MouseDownEvent, (RoutedEventHandler)miBoton2_MouseDown, true);