这几天我才开始使用 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;
}
希望我的问题足够清楚。有没有办法解决这个问题?或者如果菜单隐藏时触发了任何事件,以便我可以确保先前的上下文菜单被释放或清除?
谢谢。