2

这几天我才开始使用 Silverlight。

目前我已经在画布中动态生成了一些面板。每个面板将有一个共享MouseLeftButtonUp事件,该事件将显示一个ContextMenu.

现在的问题是,当我单击第一个面板时,可以显示 ContextMenu,但是当我单击第二个面板时,显示的是第一个 ContextMenu 而不是第二个。仅当我在第二个面板上再次单击时,第二个面板才会显示其 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