ここ数日、Silverlight を使い始めたばかりです。
現在、キャンバスにいくつかのパネルを動的に生成しています。各パネルには、MouseLeftButtonUp
を表示する共有イベントがありますContextMenu
。
問題は、最初のパネルをクリックすると ContextMenu が表示されますが、2 番目のパネルをクリックすると、2 番目のパネルではなく最初の ContextMenu が表示されることです。2 番目のパネルは、2 番目のパネルをもう一度クリックしたときにのみ ContextMenu を表示します。
以下は、パネルとコンテキスト メニューを生成するコードです。
void generatePanel()
{
StackPanel panel = new StackPanel();
panel.MouseLeftButtonUp += panel_MouseLeftButtonUp;
canvas.Children.Add(panel)
}
void panel_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
e.Handled = true;
ContextMenu menu = new ContextMenu();
menu.IsOpen = true;
}
うまくいけば、私の問題は十分に明確です。問題を解決する方法はありますか?または、メニューが非表示になっているときに発生するイベントがある場合は、前のコンテキスト メニューが破棄またはクリアされていることを確認できますか?
ありがとう。