wpf 05 - triggers y eventos

17
Triggers y Eventos DANAE AGUILAR GUZMÁN. MCT, MCP, MCTS [email protected]

Upload: danae-aguilar-guzman

Post on 08-Apr-2017

131 views

Category:

Software


1 download

TRANSCRIPT

Page 1: WPF 05 - triggers y eventos

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

Page 2: WPF 05 - triggers y eventos

Contenido del Módulo Lección 1. Introducción a Triggers

Lección 2. Manejo de eventos

Page 3: WPF 05 - triggers y eventos

Lección 1. Introducción a Triggers

1. WPF Triggers

2. Tipos de Triggers

3. Property Triggers

4. MultiTriggers

Page 4: WPF 05 - triggers y eventos

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.

Page 5: WPF 05 - triggers y eventos

2. Tipos de Triggers 1. Property Triggers

Trigger

MultiTrigger

2. Data Triggers DataTrigger

MultiDataTrigger

3. Event Triggers EventTrigger

Page 6: WPF 05 - triggers y eventos

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>

Page 7: WPF 05 - triggers y eventos

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>

Page 8: WPF 05 - triggers y eventos

Lección 2. Manejo de eventos 1. Manejando eventos en Windows Forms

2. Eventos enrutados WPF

3. Manejando eventos enrutados

Page 9: WPF 05 - triggers y eventos

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 }

Page 10: WPF 05 - triggers y eventos

Direct

Tunneling

Eventos enrutados WPF Window

Grid

Button TextBlock

TextBlock

ScrollViewer

StackPanel

TextBlock

1.

2.

Bubbling 3.

Page 11: WPF 05 - triggers y eventos

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

Page 12: WPF 05 - triggers y eventos

Eventos enrutados WPF Estrategias de Enrutado:

2. Direct. • Se lanza solamente en el elemento que originó el evento.

Page 13: WPF 05 - triggers y eventos

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.

Page 14: WPF 05 - triggers y eventos

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 }

Page 15: WPF 05 - triggers y eventos

WPF RoutedEventArgs

Page 16: WPF 05 - triggers y eventos

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

Page 17: WPF 05 - triggers y eventos

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);