RoutedEventArgs.Handled プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ルーティング イベントがルートをたどる際のイベント処理の現在の状態を示す値を取得または設定します。
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)特に追加されたHandledEventsToo``true
ハンドラーのみが応答で呼び出されます。 インスタンス リスナーの既定のハンドラー (拡張アプリケーション マークアップ言語 (XAML) で表されるものなど) は呼び出されません。 処理済みとしてマークされたイベントの処理は、一般的なシナリオではありません。
独自のイベントを定義するコントロール作成者の場合、クラス レベルでのイベント処理に関して行う決定は、コントロールのユーザー、および派生コントロールのユーザー、およびコントロールに含まれている、またはコントロールを含むその他の要素に影響を与える可能性があります。 詳細については、「ルーティング イベントの処理済みとしてのマーキング、およびクラス処理」を参照してください。
非常にまれな状況では、マークtrue
されているHandledイベントを処理し、イベント引数を .Handled false
これは、コントロールの入力イベントの特定の領域 (低レベルおよび高レベルのKeyDownTextInput入力イベントが処理に競合するキー処理と、それぞれが異なるルーティング戦略を使用しようとしている場合など) に必要な場合があります。