2

私のSilverlightプロジェクトには、メニューがあります。メニューの外側をクリックすると、メニューを閉じます。アプリのクリックイベントにハンドラーを追加します。

AddHandler App.Current.RootVisual.MouseLeftButtonDown, AddressOf HideMenu

ただし、他のコマンドをクリックしたり、コンテキストメニューがある同じコントロールをクリックしたりしてもハンドラーに入らないという問題があります。メニュー外の空の領域をクリックした場合にのみ入力されます。

ありがとう。

4

1 に答える 1

1

AddHandler私はそれが2つのパラメータしかとらないの署名であることに気づいていませんでしたFalse. このパラメーターは、他のコントロールがイベントを処理した場合でもハンドラーを実行することを示す、 handledEventsTooパラメーターです。

VBは次のようになると思います:-

AddHandler App.Current.RootVisual.MouseLeftButtonDown, AddressOf HideMenu, True

編集

とにかく間違っているこのVBコードを捨てましょう。C# でのコードは次のようになります (Silverlight の Web 上のコード例の大部分は C# であるため、翻訳に精通している必要があります)。

 this.AddHandler(UIElement.MouseLeftButtonDownEvent, HideMenu, true);

このコードは、含まれている UserControl の背後にあるコードにあり、HideMenuこの署名を持っています:-

 void HideMenu(object sender, MouseEventArgs e)
 {
 }
于 2011-01-13T12:58:51.430 に答える