2

ここ数日、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;
}

うまくいけば、私の問題は十分に明確です。問題を解決する方法はありますか?または、メニューが非表示になっているときに発生するイベントがある場合は、前のコンテキスト メニューが破棄またはクリアされていることを確認できますか?

ありがとう。

4

0 に答える 0