RoutedEventArgs.Handled RoutedEventArgs.Handled RoutedEventArgs.Handled RoutedEventArgs.Handled Property

Определение

Получает или задает значение, обозначающее текущее состояние обработки перенаправленного события при перемещении по маршруту.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. Событие по-прежнему передается в оставшейся части маршрута, но в ответе HandledEventsToo будут вызываться только обработчики, специально добавленные true в в AddHandler(RoutedEvent, Delegate, Boolean) вызове метода.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. Обработчики по умолчанию для прослушивателей экземпляров (например Язык XAMLExtensible Application Markup Language (XAML), которые выражаются в) не будут вызываться.Default handlers on instance listeners (such as those expressed in Язык XAMLExtensible 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.

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

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