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 にしてイベント ハンドラーを配線するための基本的な構文を示します。 この場合、ワイヤードされているイベントは タップされ、例で使用されている 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.AddHandler と UIElement.RemoveHandler です。 詳しくは、「イベントとルーティング イベントの概要」をご覧ください。
RoutedEvent 識別子を使用するイベント
RoutedEvent 識別子を持ち、説明した UIElement.AddHandler 手法を使用できるルーティング イベントの一覧を次に示します。
- DoubleTapped
- DragEnter
- DragLeave
- DragOver
- Drop
- 株式公開状況
- KeyDown
- KeyUp
- ManipulationCompleted
- ManipulationDelta
- ManipulationInertiaStarting
- ManipulationStarted
- ManipulationStarting
- PointerCanceled
- PointerCaptureLost
- PointerEntered
- PointerExited
- PointerMoved
- PointerPressed
- PointerReleased
- PointerWheelChanged
- RightTapped
- Tapped
注意
GotFocus と LostFocus はルーティング イベントのように動作しますが、RoutedEvent 識別子がないため、 AddHandler を使用することはできません。