RoutedEventHandler

RoutedEventHandlerは、イベントハンドラとなるデリゲート。

RoutedEventHandler Delegate (System.Windows) | Microsoft Docs

"Routed"と名が付いているが、これはそのハンドラでイベント処理終了をしない場合、親要素がイベントを受け取り、そのイベント処理終了をするか判断し、処理終了しない場合、また親要素に渡っていくような、イベントのルーティングが行われるからである。
MFCのCCmdTargetと同じような仕組みである。

WPF アプリケーション
WPF アプリケーション

WPFで、

Button
Button

Buttonを選択し、

配置
配置

配置。

今回は手書きでハンドラを追加。
handlerで"ABCDE"表示処理を書いて、登録はWindow1のコンストラクタでやっている。

これだけだと、

実行時
実行時

実行して、押すと、

ABCDE
ABCDE

"ABCDE"が表示されるだけ。

button2
button2

このようにbutton2を内部に配置する。
button2をダブルクリックして、

今度はbutton2_Clickで"XYZ"を表示するように書く。

実行時
実行時

実行したら、

外側のButton
外側のButton

外側のButtonを押すと、

ABCDE
ABCDE

表示するのはこれだけ。
しかし、

内側のbutton2
内側のbutton2

内側のbutton2を押すと、

XYZ
XYZ

"XYZ"、そして、

ABCDE
ABCDE

"ABCDE"が表示される。
button2のイベントハンドラ処理の後に、親であるButtonのイベントハンドラ処理が実行されるのである。

Sample/wpf/RoutedEventHandler/RoutedEventHandler/src/RoutedEventHandler at master · bg1bgst333/Sample · GitHub