RoutedEvent 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示路由到Windows 运行时事件系统的事件。
public ref class RoutedEvent sealed
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class RoutedEvent final
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class RoutedEvent
Public NotInheritable Class RoutedEvent
- 继承
- 属性
示例
此示例演示使用 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);
}
注解
注意
Windows 运行时事件系统不允许创建自定义路由事件;只有Windows 运行时本身可以定义事件,使其具有路由事件行为。
有关路由事件工作原理的详细信息,请参阅 事件和路由事件概述。 类型RoutedEvent
是路由事件的基础结构的一部分,但不直接在RoutedEvent
典型的 Windows 运行时 应用编程中使用。
该类型的用途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 与它们一起使用。