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) で特別に追加されたHandledEventsTootrueハンドラーのみが応答で呼び出されます。 インスタンス リスナーの既定のハンドラー (拡張アプリケーション マークアップ言語 (XAML) で表現されたものなど) は呼び出されません。 処理済みとマークされたイベントの処理は、一般的なシナリオではありません。

独自のイベントを定義するコントロール作成者の場合、クラス レベルでのイベント処理に関して行う決定は、コントロールのユーザー、派生コントロールのユーザー、およびコントロールに含まれている、またはコントロールを含む他の要素に影響を与える可能性があります。 詳細については、「ルーティング イベントの処理済みとしてのマーキング、およびクラス処理」を参照してください。

非常にまれな状況では、 が とマークされているtrueイベントHandledを処理し、 を に変更してイベント引数を変更Handledすることがfalse適切です。 これは、コントロールの入力イベントの特定の領域で必要になる場合があります。たとえば、 のキー処理やTextInput、低レベルと高レベルのKeyDown入力イベントが処理に競合し、それぞれが異なるルーティング戦略を使用しようとしています。

適用対象