wpf 05 - triggers y eventos

Post on 08-Apr-2017

131 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

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

top related