Можно ли добавить пункты меню в контекстное меню во время реализации?
Я надеюсь, что задал правильный вопрос, но вот моя ситуация. у меня есть TreeViewItem
что я реализую. Внутри я устанавливаю / добавляю различные свойства, одним из которых является ContextMenu
, Все, что я хочу сделать, это добавить MenuItems
к ContextMenu
не переходя к функциям и тому подобное.
Вот как я реализую свой TreeViewItem
с ContextMenu
:
public static TreeViewItem Item = new TreeViewItem() //Child Node
{
ContextMenu = new ContextMenu //CONTEXT MENU
{
Background = Brushes.White,
BorderBrush = Brushes.Black,
BorderThickness = new Thickness(1),
//**I would like to add my MENUITEMS here if possible
}
};
Большое спасибо!
2 ответа
Решение
Соня ответ правильный. Предоставление примера для вашего случая.
TreeViewItem GreetingItem = new TreeViewItem()
{
Header = "Greetings",
ContextMenu = new ContextMenu //CONTEXT MENU
{
Background = Brushes.White,
BorderBrush = Brushes.Black,
BorderThickness = new Thickness(1),
}
};
MenuItem sayGoodMorningMenu = new MenuItem() { Header = "Say Good Morning" };
sayGoodMorningMenu.Click += (o, a) =>
{
MessageBox.Show("Good Morning");
};
MenuItem sayHelloMenu = new MenuItem() { Header = "Say Hello" };
sayHelloMenu.Click += (o, a) =>
{
MessageBox.Show("Hello");
};
GreetingItem.ContextMenu.Items.Add(sayHelloMenu);
GreetingItem.ContextMenu.Items.Add(sayGoodMorningMenu);
this.treeView.Items.Add(GreetingItem);
Для этого в WPF
Я сделал это:
TreeViewItem GreetingItem = new TreeViewItem()
{
Header = "Greetings",
ContextMenu = new ContextMenu //CONTEXT MENU
{
Background = Brushes.White,
BorderBrush = Brushes.Black,
BorderThickness = new Thickness(1),
}
};
// Create ContextMenu
contextMenu = new ContextMenu();
contextMenu.Closing += contextMenu_Closing;
// Exit item
MenuItem menuItemExit = new MenuItem
{
Header = Cultures.Resources.Exit,
Icon= Cultures.Resources.close
};
menuItemExit.Click += (o, a) =>
{
Close();
}
// Restore item
MenuItem menuItemRestore = new MenuItem
{
Header = Cultures.Resources.Restore,
Icon= Cultures.Resources.restore1
};
menuItemRestore.Click += (o, a) =>
{
WindowState = WindowState.Normal;
};
contextMenu.Items.Add(menuItemRestore);
contextMenu.Items.Add(menuItemExit);
GreetingItem.ContextMenu = contextMenu;
Вы можете установить его для любого элемента, который поддерживает так.
РЕДАКТИРОВАТЬ: Я пишу это по памяти, извините, если это не точно. Но более или менее это идея.