RoutedEventArgs.Handled プロパティ

定義

ルーティング イベントがルートをたどる際のイベント処理の現在の状態を示す値を取得または設定します。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. イベントは引き続きルートの残りの部分を移動しますが、AddHandler(RoutedEvent, Delegate, Boolean) メソッドの呼び出しで明示的に追加されたハンドラーのみが応答として呼び出されます。 HandledEventsToo trueThe 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. インスタンスリスナーの既定のハンドラー (Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)で表されるものなど) は呼び出されません。Default handlers on instance listeners (such as those expressed in Extensible Application Markup Language (XAML)Extensible 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.

非常にまれな状況では、Handledtrueとしてマークされているイベントを処理し、Handledfalseに変更することでイベント引数を変更することが適切です。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. これは、コントロールの入力イベントの特定の領域で必要になることがあります。たとえば、低いレベルの入力イベントと高いレベルの入力イベントが処理に対して競合し、それぞれが異なるルーティング方法を使用しようとしている場合に、KeyDownTextInput のキー処理が行われます。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.

適用対象