2009-04-16 1 views
0

非常によく知られている事実は、ルーティングされたイベントはすべての要素を経由するのではなく、祖先だけを上または下に移動することです。wpfでルーティングされたイベント

しかし、イベントハンドラを2つの異なるコントロールの共通の親に配線することも可能です。

私の質問は、どういうわけか、いくつかのポインタをお願いします。

それは「InnerGrid」の下に「埋め込まれた部分」を取得しますように私は

<Grid Name="MainGrid"> 
    <Listbox Name="lb1"/> 
    <Grid Name="InnerGrid"> 
     <Listbox Name="lb2"/> 
    </Grid> 
</Grid> 

のように見えるXAMLは、「LB1」で定義されたマウスイベントハンドラは解雇ではないだろうしています。私の質問は、 "MainGrid"または "lb1"で定義されたイベントハンドラが起動する他の場所にコードを書き込む方法です。または、これを達成するための他の技術かもしれません。

多くのありがとうございます。

+0

これは愚かな質問かもしれませんが、最初にInnerGridの下にlb1を埋めるのはなぜですか? ;) –

+0

あなたの質問は絶対に理にかなっています。私が上記で尋ねた質問は、短いストーリーを短くするようなものです。基本的に1024X768では、画面の不動産はあまり適応していないので、そのフォームにはたくさんのコントロールがあります。 :) –

答えて

1

あなたが尋ねていることは正確にはわかりませんが、すでに処理されたイベントを呼び出すことができるように思われます。

はこのお試しください:InitializeComponent()後コンストラクタでの背後にあるあなたのコードでは

を、イベントでのパス(MouseDownかなど)

this.AddHandler(RoutedEvent, Delegate, bool); 
を呼び出し、デリゲートは( lb1_MouseDownのようなもの)をコールすると、 trueを入力して、すでに処理されたイベントを呼び出すことを示します。

関連する問題