RoutedEventArgs.Handled 속성

정의

경로를 따라 이동할 때 라우트된 이벤트의 현재 이벤트 처리 상태를 나타내는 값을 가져오거나 설정합니다.Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route.

public:
 property bool Handled { bool get(); void set(bool value); };
[get: System.Security.SecurityCritical]
[set: System.Security.SecurityCritical]
public bool Handled { get; set; }
member this.Handled : bool with get, set
Public Property Handled As Boolean

속성 값

이벤트를 처리된 것으로 표시하려면 true 로 설정하고, 그러지 않으면 false로 설정합니다.If setting, set to true if the event is to be marked handled; otherwise false. 이 값을 읽을 때 true 는 클래스 처리기 또는 경로의 일부 인스턴스 처리기가 이 이벤트를 처리한 것으로 이미 표시했음을 나타냅니다.If reading this value, true indicates that either a class handler, or some instance handler along the route, has already marked this event handled. false는 이러한 처리기가 이벤트를 처리한 것으로 표시하지 않았음을 나타냅니다.false.indicates that no such handler has marked the event handled.

기본값은 false입니다.The default value is false.

특성

예제

다음 예제에서는 이벤트를 처리 된 것으로 표시 하는 이벤트 처리기를 구현 합니다.The following example implements an event handler that marks the event handled.

protected override void OnPreviewMouseRightButtonDown(System.Windows.Input.MouseButtonEventArgs e)
{
    e.Handled = true; //suppress the click event and other leftmousebuttondown responders
    MyEditContainer ec = (MyEditContainer)e.Source;
    if (ec.EditState)
    { ec.EditState = false; }
    else
    { ec.EditState = true; }
    base.OnPreviewMouseRightButtonDown(e);
}
Protected Overrides Sub OnPreviewMouseRightButtonDown(ByVal e As System.Windows.Input.MouseButtonEventArgs)
    e.Handled = True 'suppress the click event and other leftmousebuttondown responders
    Dim ec As MyEditContainer = CType(e.Source, MyEditContainer)
    If ec.EditState Then
        ec.EditState = False
    Else
        ec.EditState = True
    End If
    MyBase.OnPreviewMouseRightButtonDown(e)
End Sub

설명

이벤트를 처리 된 것으로 표시 하면 라우트된 이벤트의 표시 여부가 이벤트 경로를 따라 수신기로 제한 됩니다.Marking the event handled will limit the visibility of the routed event to listeners along the event route. 이벤트는 계속 해 서 경로의 나머지 부분을 이동 하지만 AddHandler(RoutedEvent, Delegate, Boolean) 메서드 호출의 HandledEventsToo true를 사용 하 여 특별히 추가 된 처리기만 응답으로 호출 됩니다.The event does still travel the remainder of the route, but only handlers specifically added with HandledEventsToo true in the AddHandler(RoutedEvent, Delegate, Boolean) method call will be invoked in response. 인스턴스 수신기의 기본 처리기 (예: XAML(Extensible Application Markup Language)Extensible Application Markup Language (XAML)에 표시 된 처리기)는 호출 되지 않습니다.Default handlers on instance listeners (such as those expressed in XAML(Extensible Application Markup Language)Extensible Application Markup Language (XAML)) will not be invoked. 처리 된 것으로 표시 된 이벤트를 처리 하는 것은 일반적인 시나리오가 아닙니다.Handling events that are marked handled is not a common scenario.

사용자 고유의 이벤트를 정의 하는 컨트롤 작성자 인 경우 클래스 수준에서 이벤트 처리와 관련 하 여 결정 하면 컨트롤의 사용자 뿐만 아니라 파생 된 컨트롤의 사용자와 컨트롤에 포함 된 다른 요소에도 영향을 줍니다. 컨트롤을 포함 하는 또는입니다.If you are a control author defining your own events, the decisions you make regarding event handling at the class level will impact users of your control as well as any users of derived controls, and potentially other elements that are either contained by your control or that contain your control. 자세한 내용은 라우트된 이벤트를 처리된 것으로 표시 및 클래스 처리를 참조하세요.For more information, see Marking Routed Events as Handled, and Class Handling.

매우 드문 경우 Handledtrue표시 되는 이벤트를 처리 하 고 Handledfalse로 변경 하 여 이벤트 인수를 수정 하는 것이 적절 합니다.In very rare circumstances it is appropriate to handle events where Handled is marked true, and modify the event arguments by changing Handled to false. 이는 낮은 수준 및 높은 수준의 입력 이벤트가 처리를 위해 경합 하 고 각각 다른 라우팅 전략을 사용 하 여 작업을 시도 하는 TextInput KeyDown의 키 처리와 같은 컨트롤의 입력 이벤트의 특정 영역에서 필요할 수 있습니다.This can be necessary in certain areas of input events of controls, such as key handling of KeyDown versus TextInput where low level and high level input events compete for the handling, and each is attempting to work with a different routing strategy.

적용 대상