RoutedEvent Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa un evento enrutado al sistema de eventos Windows Runtime.
public ref class RoutedEvent sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class RoutedEvent final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class RoutedEvent final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class RoutedEvent
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class RoutedEvent
Public NotInheritable Class RoutedEvent
- Herencia
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10 (se introdujo en la versión 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
|
Ejemplos
En este ejemplo se muestra la sintaxis básica para conectar un controlador de eventos con AddHandler y handledEventsToo como true. En este caso, el evento que se está conectando es Tapped y el identificador de tipo RoutedEvent usado en el ejemplo es TappedEvent. El lugar típico para conectar controladores se carga para una página o OnApplyTemplate para un control con plantilla.
void MainPage::pageRoot_Tapped(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e)
{
//implementation
}
void MainPage::pageRoot_Loaded(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
this->AddHandler(UIElement::TappedEvent, ref new TappedEventHandler(this, &MainPage::pageRoot_Tapped), true);
}
private void pageRoot_Tapped(object sender, TappedRoutedEventArgs e)
{
//implementation
}
private void pageRoot_Loaded_1(object sender, RoutedEventArgs e)
{
this.AddHandler(UIElement.TappedEvent, new TappedEventHandler(pageRoot_Tapped), true);
}
Private Sub Page_Tapped(sender As Object, e As TappedRoutedEventArgs)
' implementation
End Sub
Private Sub Page_Loaded_1(sender As Object, e As RoutedEventArgs)
Me.AddHandler(UIElement.TappedEvent, New TappedEventHandler(AddressOf Page_Tapped), True)
End Sub
Comentarios
Nota
El sistema de eventos Windows Runtime no permite crear un evento enrutado personalizado; solo el Windows Runtime puede definir un evento de modo que tenga el comportamiento del evento enrutado.
Para obtener más información sobre cómo funcionan los eventos enrutados, consulta Información general sobre eventos y eventos enrutados. El tipo RoutedEvent forma parte de la infraestructura para eventos enrutados, pero no se usa RoutedEvent directamente en la programación típica de Windows Runtime aplicación.
El propósito del tipo RoutedEvent es servir como identificador para el sistema de eventos de Windows Runtime, similar a cómo DependencyProperty proporciona un tipo de identificador para el sistema de propiedades de dependencia. UIElement incluye varias propiedades estáticas de solo lectura del tipo RoutedEvent, que se denominan mediante un patrón de nomenclatura. Cada propiedad RoutedEvent se denomina después de un evento más el sufijo "Event". Cada propiedad de este tipo es el identificador del evento enrutado con el que comienza su nombre. Por ejemplo, TappedEvent identifica el evento enrutado Tapped al sistema de eventos.
Para la mayoría de los usos de código de la aplicación, simplemente hacer referencia al evento por nombre en XAML o por su nombre de entidad de código en el código es todo lo necesario para hacer referencia a un evento en un objeto, con el fin de agregar o quitar controladores. Los identificadores RoutedEvent solo son necesarios cuando se adjuntan controladores que se deben invocar incluso cuando los eventos enrutados se marcan previamente como controlados por el código del sistema o de la aplicación. La API que se usa para este escenario y la API que usa un valor RoutedEvent como parámetro son UIElement.AddHandler y UIElement.RemoveHandler. Para obtener más información, consulta Introducción a eventos y eventos enrutados.
Eventos que usan un identificador RoutedEvent
Esta es una lista de los eventos enrutados que tienen un identificador RoutedEvent y, por tanto, puede usar la técnica UIElement.AddHandler que hemos descrito:
- DoubleTapped
- DragEnter
- DragLeave
- DragOver
- Soltar
- Holding
- KeyDown
- KeyUp
- ManipulationCompleted
- ManipulationDelta
- ManipulationInertiaStarting
- ManipulationStarted
- ManipulationStarting
- PointerCanceled
- PointerCaptureLost
- PointerEntered
- PointerExited
- PointerMoved
- PointerPressed
- PointerReleased
- PointerWheelChanged
- RightTapped
- Tapped
Nota
GotFocus y LostFocus actúan como eventos enrutados, pero no tienen un identificador RoutedEvent, por lo que no puede usar AddHandler con ellos.