RoutedEventArgs.Handled プロパティ

定義

ルーティング イベントがルートをたどる際のイベント処理の現在の状態を示す値を取得または設定します。

public:
 property bool Handled { bool get(); void set(bool value); };
public bool Handled { get; set; }
public bool Handled { [System.Security.SecurityCritical] get; [System.Security.SecurityCritical] set; }
member this.Handled : bool with get, set
[<get: System.Security.SecurityCritical>]
[<set: System.Security.SecurityCritical>]
member this.Handled : bool with get, set
Public Property Handled As Boolean

プロパティ値

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) 呼び出されます。 インスタンスリスナーの既定のハンドラー (Extensible Application Markup Language (XAML) で表されるものなど) は呼び出されません。 処理済みとマークされたイベントの処理は、一般的なシナリオではありません。

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

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

適用対象