我想为我动态创建的一些对象添加ContextMenu,但是我找到的唯一方法是像这样在运行时创建ContextMenu:
ContextMenu pMenu = new ContextMenu();
MenuItem item1 = new MenuItem();
MenuItem item2 = new MenuItem();
//I have about 10 items
//...
item1.Header = "item1";
item1.Click += new RoutedEventHandler(item1_Click);
pMenu.Items.Add(item1);
item2.Header = "item2";
item2.Click += new RoutedEventHandler(item2_Click);
pMenu.Items.Add(item2);
//and so on
它能运行,但是在WinForms中,我能够快速地将ContextMenuStrip组件拖放到我的表单上,并定义项目和事件,而无需编写任何代码。在WPF中是否也可能呢?
var pMenu = (ContextMenu)this.Resources["MyContextMenu"];
在运行时获取ContextMenu。然后,您可以将此变量分配给动态创建的控件。 - Heinzi