次の方法で共有


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 で導入)

この例では、 AddHandlerhandledEventsTootrue にしてイベント ハンドラーを配線するための基本的な構文を示します。 この場合、ワイヤードされているイベントは タップされ、例で使用されている 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 型の目的は、DependencyProperty が依存関係プロパティ システムの識別子型を提供するのと同様に、Windows ランタイム イベント システムの識別子として機能することです。 UIElement には、名前付けパターンを使用して名前が付けられた RoutedEvent 型の静的読み取り専用プロパティがいくつか含まれています。 各 RoutedEvent プロパティには、イベントにサフィックス "Event" を付加した名前が付けられます。 このような各プロパティは、その名前で始まるルーティング イベントの識別子です。 たとえば、 TappedEvent は、イベント システムへの Tapped ルーティング イベントを識別します。

ほとんどのアプリ コードの使用方法では、ハンドラーを追加または削除する目的で、XAML の名前またはコード内のコード エンティティ名でイベントを参照するだけで、オブジェクトのイベントを参照するために必要なものがすべてになります。 RoutedEvent 識別子は、ルーティング イベントが以前にシステム コードまたはアプリ コードによって処理済みとしてマークされている場合でも呼び出されるハンドラーをアタッチする場合にのみ必要です。 このシナリオで使用する API と、パラメーターとして RoutedEvent 値を使用する API は、 UIElement.AddHandlerUIElement.RemoveHandler です。 詳しくは、「イベントとルーティング イベントの概要」をご覧ください。

RoutedEvent 識別子を使用するイベント

RoutedEvent 識別子を持ち、説明した UIElement.AddHandler 手法を使用できるルーティング イベントの一覧を次に示します。

注意

GotFocusLostFocus はルーティング イベントのように動作しますが、RoutedEvent 識別子がないため、 AddHandler を使用することはできません。

適用対象

こちらもご覧ください