C# System.Windows上下文菜单项单击事件?
我正在制作一个WPF应用程序,但在我的代码中,我需要制作一个ContextMenu,它看起来非常简单:C# System.Windows上下文菜单项单击事件?,c#,.net,wpf,C#,.net,Wpf,我正在制作一个WPF应用程序,但在我的代码中,我需要制作一个ContextMenu,它看起来非常简单: _menu = new ContextMenu(); _menu.Items.Add("My menu item"); 然后我用了它,一切都像一个符咒 但是,我需要知道何时单击“我的菜单项”,但我似乎找不到正确的事件,我正在搜索类似ItemClick事件的内容,但找不到它…我从未在代码中这样做,总是使用XAML。 然而,它是这样的: _menu = new ContextMenu();
_menu = new ContextMenu();
_menu.Items.Add("My menu item");
然后我用了它,一切都像一个符咒
但是,我需要知道何时单击“我的菜单项”,但我似乎找不到正确的事件,我正在搜索类似ItemClick事件的内容,但找不到它…我从未在代码中这样做,总是使用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);
_menu = new ContextMenu();
MenuItem item = new MenuItem();
item.Header = "My menu item";
item.Click += new RoutedEventHandler(item_Click);
_menu.Items.Add(item);
唯一的疑问是将文本添加到菜单项。您必须像示例中那样尝试,或者可能向MenuItem.Items集合添加一个TextBlock尝试添加一个可单击的项,而不仅仅是一个字符串。例如:
_menu = new ContextMenu();
MenuItem item = new MenuItem();
item.Click += MyClickHandler;
item.Header = "My Menu Item";
_menu.Items.Add(item);
我想你想要这样的东西:
_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);
_menu = new ContextMenu();
MenuItem item = new MenuItem();
item.Header = "My menu item";
item.Click += new RoutedEventHandler(item_Click);
_menu.Items.Add(item);
MenuItem没有文本属性。我在Steve Danner的回答中看到了标题属性+1.他也是。