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) вызывается только обработчики, специально добавленные с помощью HandledEventsToo
true
в вызове метода AddHandler(RoutedEvent, Delegate, Boolean). Обработчики по умолчанию для прослушивателей экземпляров (например, которые выражаются на языке разметки расширяемых приложений (XAML)) не будут вызываться. Обработка событий, помеченных как помеченные, не является общим сценарием.
Если вы являетесь автором элемента управления, определяющим собственные события, решения, которые вы принимаете в отношении обработки событий на уровне класса, повлияют на пользователей элемента управления, а также на всех пользователей производных элементов управления, а также потенциально других элементов, содержащихся в элементе управления или содержащих элемент управления. Дополнительные сведения см. в разделе Маркировка перенаправленных событий как обработанные иобработки классов.
В очень редких случаях целесообразно обрабатывать события, в которых Handled помечены true
, и изменять аргументы события путем изменения Handled на false
. Это может потребоваться в определенных областях входных событий элементов управления, таких как обработка ключей KeyDown и TextInput, где низкоуровневые и высокоуровневые входные события конкурируют за обработку, и каждая из них пытается работать с другой стратегией маршрутизации.