Поделиться через


RoutedEventArgs.Handled Свойство

Определение

Возвращает или задает значение, указывающее текущее состояние обработки событий для перенаправленного события по мере перемещения маршрута.

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

Значение свойства

Если параметр задан, установите значение true, если событие должно быть помечено как обработанное; в противном случае false. При чтении этого значения true указывает, что обработчик класса или какой-либо обработчик экземпляра по маршруту уже помечает это событие. false.указывает, что такой обработчик не помечает обработанное событие.

Значение по умолчанию — false.

Атрибуты

Примеры

В следующем примере реализуется обработчик событий, который помечает обработанное событие.

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

Комментарии

Пометка обработанного события ограничивает видимость перенаправленного события прослушивателями по маршруту событий. Событие по-прежнему перемещается по оставшейся части маршрута, но вызов метода AddHandler(RoutedEvent, Delegate, Boolean) вызывается только обработчики, специально добавленные с помощью HandledEventsTootrue в вызове метода AddHandler(RoutedEvent, Delegate, Boolean). Обработчики по умолчанию для прослушивателей экземпляров (например, которые выражаются на языке разметки расширяемых приложений (XAML)) не будут вызываться. Обработка событий, помеченных как помеченные, не является общим сценарием.

Если вы являетесь автором элемента управления, определяющим собственные события, решения, которые вы принимаете в отношении обработки событий на уровне класса, повлияют на пользователей элемента управления, а также на всех пользователей производных элементов управления, а также потенциально других элементов, содержащихся в элементе управления или содержащих элемент управления. Дополнительные сведения см. в разделе Маркировка перенаправленных событий как обработанные иобработки классов.

В очень редких случаях целесообразно обрабатывать события, в которых Handled помечены true, и изменять аргументы события путем изменения Handled на false. Это может потребоваться в определенных областях входных событий элементов управления, таких как обработка ключей KeyDown и TextInput, где низкоуровневые и высокоуровневые входные события конкурируют за обработку, и каждая из них пытается работать с другой стратегией маршрутизации.

Применяется к