Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés
Esta documentación está archivada y no tiene mantenimiento.

RoutedEvent (Clase)

Representa e identifica un evento enrutado y declara sus características.

System.Object
  System.Windows.RoutedEvent

Espacio de nombres:  System.Windows
Ensamblado:  PresentationCore (en PresentationCore.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[TypeConverterAttribute("System.Windows.Markup.RoutedEventConverter, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")]
public sealed class RoutedEvent
<object property="eventName"/>
- or -
<object property="type.eventName"/>

Valores XAML

eventName

Nombre de evento no calificado, equivalente a la propiedad Name del campo RoutedEvent, no el nombre del miembro real del campo identificador de RoutedEvent de un tipo. Sin la calificación, eventName deben denominar un evento como se encuentre en el tipo que es la propiedad TargetType del estilo actual que contiene EventSetter o EventTrigger.

tipo

Tipo que se va a usar para calificar el nombre del evento. Si se proporciona sin un prefijo, se espera que el tipo sea un tipo del espacio de nombres XAML predeterminado y que se puede asignar a un tipo CLR existente. Para los eventos personalizados o eventos que están en tipos fuera del espacio de nombres XAML predeterminado, la cadena para el tipo puede incluir un prefijo para un espacio de nombres XAML asignado. Ese espacio de nombres XAML debería contener el tipo XAML que se puede asignar a un tipo CLR de apoyo y ese tipo CLR debe definir el identificador de evento enrutado deseado. Para obtener detalles sobre la asignación de espacios de nombres XAML, vea Espacios de nombres y asignación de espacios de nombres XAML para WPF.

El tipo RoutedEvent expone los siguientes miembros.

  NombreDescripción
Propiedad públicaHandlerTypeObtiene el tipo de controlador del evento enrutado.
Propiedad públicaNameObtiene el nombre de identificación del evento enrutado.
Propiedad públicaOwnerTypeObtiene el tipo de propietario registrado del evento enrutado.
Propiedad públicaRoutingStrategyObtiene la estrategia de enrutamiento del evento enrutado.
Arriba

  NombreDescripción
Método públicoAddOwnerAsocia otro tipo de propietario con el evento enrutado representado por una instancia de RoutedEvent y habilita enrutamiento del evento y su control.
Método públicoEquals(Object)Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Se hereda de Object).
Método públicoGetHashCodeActúa como función hash para un tipo concreto. (Se hereda de Object).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoToStringDevuelve la representación de RoutedEvent. (Invalida a Object.ToString()).
Arriba

Esta clase contiene las propiedades Name, RoutingStrategy, HandlerTypey OwnerType. Ninguno de estos miembros puede tener valores nulos.

Esta clase tiene un uso XAML diseñado exclusivamente para proporcionar el valor de la propiedad RoutedEvent de EventTrigger (o clase derivada), o de la propiedad Event de EventSetter (o clase derivada). Para obtener más información sobre EventTrigger, EventSetter y los usos de XAML para esas clases, vea Información general sobre eventos enrutados.

For your custom event to support event routing, you need to register a RoutedEvent using the RegisterRoutedEvent method. This example demonstrates the basics of creating a custom routed event.

As shown in the following example, you first register a RoutedEvent using the RegisterRoutedEvent method. By convention, the RoutedEvent static field name should end with the suffix Event. In this example, the name of the event is Tap and the routing strategy of the event is Bubble. After the registration call, you can provide add-and-remove common language runtime (CLR) event accessors for the event.

Note that even though the event is raised through the OnTap virtual method in this particular example, how you raise your event or how your event responds to changes depends on your needs.

Note also that this example basically implements an entire subclass of Button; that subclass is built as a separate assembly and then instantiated as a custom class on a separate Extensible Application Markup Language (XAML) page. This is to illustrate the concept that subclassed controls can be inserted into trees composed of other controls, and that in this situation, custom events on these controls have the very same event routing capabilities as any native Windows Presentation Foundation (WPF) element does.


public class MyButtonSimple: Button
{
    // Create a custom routed event by first registering a RoutedEventID
    // This event uses the bubbling routing strategy
    public static readonly RoutedEvent TapEvent = EventManager.RegisterRoutedEvent(
        "Tap", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyButtonSimple));

    // Provide CLR accessors for the event
    public event RoutedEventHandler Tap
    {
            add { AddHandler(TapEvent, value); } 
            remove { RemoveHandler(TapEvent, value); }
    }

    // This method raises the Tap event
    void RaiseTapEvent()
    {
            RoutedEventArgs newEventArgs = new RoutedEventArgs(MyButtonSimple.TapEvent);
            RaiseEvent(newEventArgs);
    }
    // For demonstration purposes we raise the event when the MyButtonSimple is clicked
    protected override void OnClick()
    {
        RaiseTapEvent();
    }

}



<Window  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:custom="clr-namespace:SDKSample;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>


Tunneling events are created the same way, but with RoutingStrategy set to Tunnel in the registration call. By convention, tunneling events in WPF are prefixed with the word "Preview".

To see an example of how bubbling events work, see Cómo: Controlar un evento enrutado.

.NET Framework

Compatible con: 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

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.
Mostrar: