2011-04-13 69 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); 
相關問題