RoutedEvent 类

定义

表示路由到Windows 运行时事件系统的事件。

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
继承
Object Platform::Object IInspectable RoutedEvent
属性

Windows 要求

设备系列
Windows 10 (在 10.0.10240.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)

示例

此示例演示将事件处理程序与 AddHandlerhandledEventsToo 连接为 true 的基本语法。 在这种情况下,正在连接的事件为 Tappped,示例中使用的 RoutedEvent 类型标识符为 TappedEvent。 线路处理程序的典型位置是页面 的 Loaded 或模板化控件的 OnApplyTemplate

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

注解

注意

Windows 运行时事件系统不允许创建自定义路由事件;只有Windows 运行时本身可以定义事件,使其具有路由事件行为。

有关路由事件工作原理的详细信息,请参阅 事件和路由事件概述。 RoutedEvent 类型是路由事件的基础结构的一部分,但不会直接在典型的Windows 运行时应用编程中使用 RoutedEvent。

RoutedEvent 类型的用途是充当Windows 运行时事件系统的标识符,类似于 DependencyProperty 为依赖属性系统提供标识符类型的方式。 UIElement 包括几个 RoutedEvent 类型的静态只读属性,这些属性使用命名模式进行命名。 每个 RoutedEvent 属性都以事件加上后缀“Event”命名。 每个此类属性都是其名称以开头的路由事件的标识符。 例如, TappedEventTapped 路由事件标识到事件系统。

对于大多数应用代码用法,只需在 XAML 中按名称或代码中的代码实体名称引用事件,即可在对象上引用事件,以便添加或删除处理程序。 仅当附加应调用的处理程序时,才需要 RoutedEvent 标识符,即使路由事件以前被系统或应用代码标记为处理也是如此。 用于此方案的 API 以及使用 RoutedEvent 值作为参数的 API 是 UIElement.AddHandlerUIElement.RemoveHandler。 有关详细信息,请参阅事件和路由事件概述

使用 RoutedEvent 标识符的事件

下面是具有 RoutedEvent 标识符的路由事件列表,因此可以使用我们介绍的 UIElement.AddHandler 技术:

注意

GotFocusLostFocus 的行为类似于路由事件,但没有 RoutedEvent 标识符,因此不能对它们使用 AddHandler

适用于

另请参阅