RoutedEvent 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示路由到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
- 继承
- 属性
Windows 要求
设备系列 |
Windows 10 (在 10.0.10240.0 中引入)
|
API contract |
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)
|
示例
此示例演示将事件处理程序与 AddHandler 和 handledEventsToo 连接为 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”命名。 每个此类属性都是其名称以开头的路由事件的标识符。 例如, TappedEvent 将 Tapped 路由事件标识到事件系统。
对于大多数应用代码用法,只需在 XAML 中按名称或代码中的代码实体名称引用事件,即可在对象上引用事件,以便添加或删除处理程序。 仅当附加应调用的处理程序时,才需要 RoutedEvent 标识符,即使路由事件以前被系统或应用代码标记为处理也是如此。 用于此方案的 API 以及使用 RoutedEvent 值作为参数的 API 是 UIElement.AddHandler 和 UIElement.RemoveHandler。 有关详细信息,请参阅事件和路由事件概述。
使用 RoutedEvent 标识符的事件
下面是具有 RoutedEvent 标识符的路由事件列表,因此可以使用我们介绍的 UIElement.AddHandler 技术:
- DoubleTapped
- DragEnter
- DragLeave
- DragOver
- Drop
- Holding
- KeyDown
- KeyUp
- ManipulationCompleted
- ManipulationDelta
- ManipulationInertiaStarting
- ManipulationStarted
- ManipulationStarting
- PointerCanceled
- PointerCaptureLost
- PointerEntered
- PointerExited
- PointerMoved
- PointerPressed
- PointerReleased
- PointerWheelChanged
- RightTapped
- Tapped
注意
GotFocus 和 LostFocus 的行为类似于路由事件,但没有 RoutedEvent 标识符,因此不能对它们使用 AddHandler 。