如何在WPF中使用代码创建菜单分隔栏

34
我正在使用vb.net编程创建WPF程序中的菜单。 请问有人能向我展示如何在代码中向菜单添加分隔栏吗?请勿使用xaml。
3个回答

55

WPF有一个名为分隔符的控件,专门用于此目的,在工具栏上显示菜单项时它也会将它们分开。来自MSDN文档:

分隔符控件在控件之间绘制一条线(水平或垂直),例如ListBox、Menu和ToolBar。分隔符控件不响应任何键盘、鼠标、鼠标滚轮或平板输入,也不能被启用或选择。

代码实现:

using System.Windows.Controls;

//

Menu myMenu = new Menu();
myMenu.Items.Add(new Separator());

47

在XAML中:

<Menu>
   <MenuItem Header="Menu Item 1" />
   <Separator />
   <MenuItem Header="Menu Item 1" />
<Menu>

1
这并没有回答问题,但这正是我需要看到的哈哈。我很矛盾是否要给你投票>< - mac10688
7
继续走,冒个险吧。你有什么可以失去的呢!;) - Adrian Toman
1
另外一票,即使它不是正确的答案,但正是我在寻找的 :) - AvikB
从谷歌跳转过来,一开始有点失望,因为问题中提到了“在代码中”。幸运的是,这个答案也在这里。(+1) - infinitezero
从谷歌跳转过来,一开始有点失望,因为问题中提到了“在代码中”。幸运的是,这个答案也在这里。(+1) - undefined

0
使用System.Windows.Forms.MenuItem类构建菜单时,您可以使用字符串“-”创建一个新的空MenuItem,以成功添加分隔线。
在代码中:
MenuItem restartAppMenu = new MenuItem("Restart", (sender, e) => {});
MenuItem closeMenu = new MenuItem("Quit", (sender, e) => {});
MenuItem SeparatorItem = new MenuItem("-");

MenuItem[] menuitems = new MenuItem[] { restartAppMenu,SeparatorItem, closeMenu };
tray.ContextMenu = new ContextMenu(menuitems);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接