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語法。 此時被接線的事件為 Tapped, 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);
}
備註
Note
Windows 執行階段 事件系統不允許您建立自訂路由事件;只有 Windows 執行階段 本身能定義具有路由事件行為的事件。
關於路由事件的更多運作資訊,請參閱事件 與路由事件概述。 這個RoutedEvent型別是路由事件基礎設施的一部分,但你不會直接用RoutedEvent在典型的 Windows 執行階段 應用程式程式設計中。
此RoutedEvent型別的目的是作為 Windows 執行階段 事件系統的識別碼,類似於 DependencyProperty 為相依屬性系統提供識別碼類型。
UIElement 包含數個靜態唯讀屬性,類型為 RoutedEvent,這些屬性以命名模式命名。 每個 RoutedEvent 物業都以一個事件及「Event」後綴命名。 每個此類屬性即為其名稱開頭的路由事件識別碼。 例如, TappedEvent 會將 被 Ttap 路由的事件識別到事件系統。
在大多數應用程式程式碼中使用中,只要在 XAML 中以名稱或程式碼中以程式碼實體名稱引用事件,就能在物件上引用事件,方便新增或移除處理器。
RoutedEvent這些識別碼只有在你附加處理程序時才需要,即使路由事件先前已被系統或應用程式代碼標記為處理,也應該被呼叫。 你在這個情境中使用的 API,以及以 RoutedEvent 值作為參數的 API 分別是 UIElement.AddHandler 和 UIElement.RemoveHandler。 如需詳細資訊,請參閱事件與路由事件概觀。
使用 RoutedEvent 識別碼的事件
以下是有 RoutedEvent 識別碼、因此可以使用 UIElement.AddHandler 技術的路由事件清單:
- 雙重敲擊
- 拖入
- 拖曳離開
- DragOver
- 放棄
- 判決
- KeyDown
- KeyUp
- 操控完成
- 操控三角洲
- 操控慣性啟動
- 操控開始
- 操作開始
- PointerCanceled
- 指向捕獲失落
- PointerEntered
- PointerExited
- PointerMoved
- PointerPressed
- Pointer已發布
- 指輪變換
- 正確點擊
- 被敲定
Note
GotFocus 和 LostFocus 就像路由事件一樣,但沒有 RoutedEvent 識別碼,所以你無法用 AddHandler 搭配它們。