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