WPFアプリケーションでユーザー入力を処理し、RoutedEvents
などを操作しています。MSDNのルーティングイベントの概要からトンネリングとバブリングを十分に把握していますが、バブリングイベントで問題が発生しました。MouseDown
MouseMove
MouseDown
イベントがハンドラーにバブルアップすると、MouseButtonEventArgs.Source
イベントが発生した現在の要素の子が表示されます。その要素の子を取得する方法はありますか?私は方法で何かを考えていますMouseButtonEventArgs.Source.Source
この場合、入力処理をアプリケーションのできるだけ上に置きたいのですが、それでもイベントが発生した最初の要素に関する情報を取得します。
以下の例:ここで、Grid
名前の付いた孫がクリックされ、でイベントを処理したいと思いますParent_MouseDown()
。ただし、その場合、イベントのソースについて取得するすべての情報は、grid
名前付きの子に関するものです。親から孫に関する情報を入手する方法はありますか?
<Grid x:Name="Parent" MouseDown="Parent_MouseDown">
<Grid x:Name="Child" MouseDown="Child_MouseDown">
<Grid x:Name="Grandchild" MouseDown="Grandchild_MouseDown">
</Grid>
</Grid>
</Grid>
私のアプリケーションでは、これらの要素は異なるクラスであり、異なるファイルに存在するため、この例は単純化されていることに注意してください。前もって感謝します!