Exportar (0) Imprimir
Expandir todo

RoutedEventArgs (Clase)

Actualización: noviembre 2007

Contiene información de estado y datos de evento asociados a un evento enrutado.

Espacio de nombres:  System.Windows
Ensamblado:  PresentationCore (en PresentationCore.dll)

public class RoutedEventArgs : EventArgs
public class RoutedEventArgs extends EventArgs
public class RoutedEventArgs extends EventArgs
Esta clase administrada no se utiliza habitualmente en XAML.

Se pueden utilizar diversos RoutedEventArgs con un RoutedEvent único. Esta clase es responsable de empaquetar datos de evento para RoutedEvent, proporcionando información de estado de evento adicional, y el sistema de eventos la utiliza para invocar el controlador asociado al evento enrutado.

Para que un evento personalizado admita el enrutamiento de eventos, es preciso registrar un RoutedEvent mediante el método RegisterRoutedEvent. En este ejemplo se muestran los fundamentos para la creación de evento enrutado personalizado.

Como se muestra en el ejemplo siguiente, primero se registra RoutedEvent mediante el método RegisterRoutedEvent. Por convención, el nombre del campo estático RoutedEvent debe finalizar con el sufijo Event. En este ejemplo, el nombre del evento es Tap y la estrategia de enrutamiento del evento es Bubble. Después de la llamada de registro, puede proporcionar descriptores de acceso common language runtime (CLR) de agregar y quitar al evento.

Tenga en cuenta que aunque el evento se provoca a través del método virtual OnTap en este ejemplo concreto, la manera de provocar un evento o cómo responda este a los cambios dependerá de sus necesidades.

Observe también que en este ejemplo se implementa básicamente una subclase completa de Button; esa subclase se genera como un ensamblado independiente y, a continuación, se crea una instancia como una clase personalizada en una página Lenguaje de marcado de aplicaciones extensible (XAML) independiente. El motivo de ello es ilustrar el concepto de que los controles con subclases pueden insertarse en árboles compuestos de otros controles y que, en esta situación, los eventos personalizados de estos controles tienen exactamente las mismas funciones de enrutamiento de eventos que cualquier elemento nativo de Windows Presentation Foundation (WPF).

Public Class MyButtonSimple
    Inherits Button

    ' Create a custom routed event by first registering a RoutedEventID
    ' This event uses the bubbling routing strategy
    Public Shared ReadOnly TapEvent As RoutedEvent = EventManager.RegisterRoutedEvent("Tap", RoutingStrategy.Bubble, GetType(RoutedEventHandler), GetType(MyButtonSimple))

    ' Provide CLR accessors for the event
    Public Custom Event Tap As RoutedEventHandler
        AddHandler(ByVal value As RoutedEventHandler)
            Me.AddHandler(TapEvent, value)
        End AddHandler

        RemoveHandler(ByVal value As RoutedEventHandler)
            Me.RemoveHandler(TapEvent, value)
        End RemoveHandler

        RaiseEvent(ByVal sender As Object, ByVal e As RoutedEventArgs)
            Me.RaiseEvent(e)
        End RaiseEvent
    End Event

    ' This method raises the Tap event
    Private Sub RaiseTapEvent()
        Dim newEventArgs As New RoutedEventArgs(MyButtonSimple.TapEvent)
        MyBase.RaiseEvent(newEventArgs)
    End Sub

    ' For demonstration purposes we raise the event when the MyButtonSimple is clicked
    Protected Overrides Sub OnClick()
        Me.RaiseTapEvent()
    End Sub

End Class


<Window  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:custom="clr-namespace:SDKSampleLibrary;assembly=SDKSampleLibrary"
    x:Class="SDKSample.RoutedEventCustomApp"

    >
	<Window.Resources>
		<Style TargetType="{x:Type custom:MyButtonSimple}">
			<Setter Property="Height" Value="20"/>
			<Setter Property="Width" Value="250"/>
			<Setter Property="HorizontalAlignment" Value="Left"/>
			<Setter Property="Background" Value="#808080"/>
		</Style>
	</Window.Resources>
	<StackPanel Background="LightGray">
		<custom:MyButtonSimple Name="mybtnsimple" Tap="TapHandler">Click to see Tap custom event work</custom:MyButtonSimple>
	</StackPanel>
</Window>


Los eventos de túnel se crean la misma manera, pero con la propiedad RoutingStrategy establecida en Tunnel en la llamada de registro. Por convención, los eventos de túnel de WPF llevan el prefijo "Preview".

Para consultar el ejemplo completo, que incluye la implementación del controlador de eventos "Tap" real, vea Ejemplo Custom Routed Events. Para obtener un ejemplo de funcionamiento de los eventos de propagación, vea Cómo: Controlar un evento enrutado.

System.Object
  System.EventArgs
    System.Windows.RoutedEventArgs
      System.Windows.Controls.CleanUpVirtualizedItemEventArgs
      System.Windows.Controls.ContextMenuEventArgs
      System.Windows.Controls.InkCanvasGestureEventArgs
      System.Windows.Controls.InkCanvasStrokeCollectedEventArgs
      System.Windows.Controls.Primitives.DragCompletedEventArgs
      System.Windows.Controls.Primitives.DragDeltaEventArgs
      System.Windows.Controls.Primitives.DragStartedEventArgs
      System.Windows.Controls.Primitives.ScrollEventArgs
      System.Windows.Controls.ScrollChangedEventArgs
      System.Windows.Controls.SelectionChangedEventArgs
      System.Windows.Controls.TextChangedEventArgs
      System.Windows.Controls.ToolTipEventArgs
      System.Windows.Controls.ValidationErrorEventArgs
      System.Windows.Data.DataTransferEventArgs
      System.Windows.DataObjectEventArgs
      System.Windows.DragEventArgs
      System.Windows.ExceptionRoutedEventArgs
      System.Windows.GiveFeedbackEventArgs
      System.Windows.Input.AccessKeyPressedEventArgs
      System.Windows.Input.CanExecuteRoutedEventArgs
      System.Windows.Input.ExecutedRoutedEventArgs
      System.Windows.Input.InputEventArgs
      System.Windows.MediaScriptCommandRoutedEventArgs
      System.Windows.Navigation.RequestNavigateEventArgs
      System.Windows.QueryContinueDragEventArgs
      System.Windows.RequestBringIntoViewEventArgs
      System.Windows.RoutedPropertyChangedEventArgs<T>
      System.Windows.SizeChangedEventArgs
      System.Windows.SourceChangedEventArgs

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft