2013年05月23日

WPFサンプル:イベントを発生させた要素を知る

   このエントリーをはてなブックマークに追加 Clip to Evernote
RoutedEventArgsのSourceプロパティを参照することで、どの要素がイベントを発生させたのかがわかります。

まずは、サンプルのXAMLとその画面を示します。


ButtonのContentは、StackPanelが設定されており、StackPanelには、Image, TextBlockが配置されています。
このButtonが右クリックされたときに、どの要素でクリックされたのかを表示するC#のコードを書いてみました。
実行すると、Image,TextBlockの部分を右クリックした場合は、その要素名がTextBlockに表示されます。
ボタンの中の Image,TextBlock 以外をクリックすると Button直接右クリックされたことを確認できます。


併せて、RoutedEventArgs のHandledプロパティの動きも確認するコードも記述しています。
CheckBoxがチェックされていた場合、Image_MouseLeftButtonDown で、Handled プロパティをtrueにしているので、そのイベントがButtonに伝搬しません。

以下実行時のスクリーンショットです。上記の説明と併せてご覧ください。

■ボタンを右クリックした時のスクリーンショット

RoutedEventArgs1 RoutedEventArgs2 RoutedEventArgs3

■ボタンをクリック(左クリック)した時のスクリーンショット

RoutedEventArgs4 RoutedEventArgs5 RoutedEventArgs6

すべてTextBoxをクリアしてからクリックしています。

--------
WPFサンプル・目次


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52320619