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 형식의 목적은 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
- Holding
- KeyDown
- KeyUp
- ManipulationCompleted
- ManipulationDelta
- ManipulationInertiaStarting
- ManipulationStarted
- ManipulationStarting
- PointerCanceled
- PointerCaptureLost
- PointerEntered
- PointerExited
- PointerMoved
- PointerPressed
- PointerReleased
- PointerWheelChanged
- RightTapped
- Tapped
참고
GotFocus 및 LostFocus 는 라우트된 이벤트처럼 작동하지만 RoutedEvent 식별자가 없으므로 AddHandler 를 사용할 수 없습니다.