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來連接事件處理常式的基本語法。 在此情況下,正在有線的事件是 Tapped,而範例中使用的 RoutedEvent 類型識別碼是 TappedEvent。 連線處理常式的一般位置是 針對頁面載入 ,或是範本化控制項的 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 會將 點 選路由事件識別至事件系統。
針對大部分的應用程式程式碼使用方式,只要以 XAML 中的名稱或程式碼機構名稱參考事件,就只需要參考物件上的事件,即可新增或移除處理常式。 只有在附加應該叫用的處理常式時,才需要 RoutedEvent 識別碼,即使路由事件先前標示為系統或應用程式程式碼所處理也一樣。 您用於此案例的 API,以及使用 RoutedEvent 值做為參數的 API,都是 UIElement.AddHandler 和 UIElement.RemoveHandler。 如需詳細資訊,請參閱事件與路由事件概觀。
使用 RoutedEvent 識別碼的事件
以下是具有 RoutedEvent 識別碼的路由事件清單,因此可以使用我們描述的 UIElement.AddHandler 技術:
- DoubleTapped
- DragEnter
- DragLeave
- DragOver
- 下降
- Holding
- KeyDown
- KeyUp
- ManipulationCompleted
- ManipulationDelta
- ManipulationInertiaStarting
- ManipulationStarted
- ManipulationStarting
- PointerCanceled
- PointerCaptureLost
- PointerEntered
- PointerExited
- PointerMoved
- PointerPressed
- PointerReleased
- PointerWheelChanged
- RightTapped
- Tapped
注意
GotFocus 和 LostFocus 就像路由事件,但沒有 RoutedEvent 識別碼,因此您無法搭配 使用 AddHandler 。