如何修改WPF桌面应用程序中MainWindow的默认上下文菜单?
下面是默认的一个:
添加菜单项是基于某些条件的,因此我需要能够在代码中而不是XAML中完成此操作。
以下是我迄今为止尝试过的:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
if ( CanShowDevMenu )
{
ContextMenu menu = this.ContextMenu;
if ( menu == null )
{
try
{
menu = (ContextMenu)Application.Current.MainWindow.FindResource("WindowContextMenu");
}
catch
{
menu = null;
}
}
if ( menu != null )
{
MenuItem menuItem1 = new MenuItem() { Header = "Item 1" };
MenuItem menuItem2 = new MenuItem() { Header = "Item 2" };
MenuItem menuItem3 = new MenuItem() { Header = "Item 3" };
menu.Items.Add(menuItem1);
menu.Items.Add(menuItem2);
menu.Items.Add(menuItem3);
}
}
}
两次获取上下文菜单的尝试都不起作用--第一次返回null,第二次抛出一个异常,说找不到资源。
1条答案
按热度按时间2vuwiymt1#
您不能修改标题栏上的默认上下文菜单,但可以将其替换为您自己的自定义菜单,例如here: