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

Комментарии

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

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

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

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