2011-04-13 62 views
2

我正在做一个WPF应用程序,但在我的代码,我需要做一个文本菜单,它似乎很容易:System.Windows ContextMenu ItemClick事件?

_menu = new ContextMenu(); 
_menu.Items.Add("My menu item"); 

然后我用它,一切工作就像一个魅力。然而,我需要知道何时“我的菜单项”被点击,但我似乎无法找到正确的事件,我正在寻找类似于ItemClick事件的东西,但却找不到它......

回答

6

尝试添加可点击的项目而不仅仅是一个字符串。例如:

_menu = new ContextMenu(); 
MenuItem item = new MenuItem(); 
item.Click += MyClickHandler; 
item.Header = "My Menu Item"; 
_menu.Items.Add(item); 
3

我从来没有在代码中做过,总是使用XAML。 但是,它是这样的:

_menu = new ContextMenu(); 
MenuItem mi = new MenuItem(); 
mi.Items.Add("My menu item"); 
mi.Click += (sender,args) => 
{ 
     // Do what you want, or instead of a lambda 
     // you can even add a separate method to the class 
}; 
_menu.Items.Add(mi); 

唯一的疑问是添加文本菜单项。您必须按照示例进行尝试,或者向TextItem集合添加一个TextBlock。

+0

+1。至于他可以简单地使用文本属性 – 2011-04-13 16:01:39

+1

的菜单项不具有Text属性的文本。我在Steve Danner看到答案是Header属性。也为他+1。 – Haplo 2011-04-13 16:03:20

1

我想你想是这样的:

_menu = new ContextMenu(); 
    MenuItem item = new MenuItem(); 
    item.Header = "My menu item"; 
    item.Click += new RoutedEventHandler(item_Click); 
    _menu.Items.Add(item); 
相关问题