次の方法で共有


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) で表現されたものなど) は呼び出されません。 処理済みとマークされたイベントの処理は、一般的なシナリオではありません。

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

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

適用対象