SpDevelop开发文档之"菜单"
<MenuItem Text="测试" Shortcut="T" RegName="MiTest" MenuPath="" Index="5" Visiable="true"/>
<MenuItem Text="Hello" Shortcut="H" RegName="MiHello" MenuPath="MiTest" IconName="SpDevelop.Res.NewFile.ico" CommandRegName="TestCommand" CommandArgs="Hello"/>
</Menuitemset>
主菜单配置节点的属性
1、 Text: 菜单显示的文本内容。
2、 Shortcut: 菜单的快捷方式
3、 RegName:菜单的注册名称,在SpDevelop系统中必须是唯一的,根据该注册名称,我们可以通过SpDevelop.SpApi.MainMenu.ShowMenuItem("", "MiTest", false);来控制测试菜单的显示。
4、 MenuPath:菜单的上级目录,是第一级菜单时则为””,当是二级菜单是则为”一级菜单注册名称”,当为三级是则为” 一级菜单注册名称/二级菜单注册名称”,于此类推。
5、 Index: 显示顺序
6、 Visiable: 是否可见
7、 IconName:菜单前的图标,比如有个项目名为SpDevelop,我们在其根目录下新建一个Res文件夹,并往这个文件夹中添加一个NewFile.ico文件,这是确记参看该图片文件的属性将其“生成操作”属性的值改成“嵌入的内容”,那么现在的IconName我们就可以设置为SpDevelop.Res.NewFile.ico
8、 CommandRegName:命令名称,详细请见"命令"
9、 CommandArgs:命令参数;
通过以上的配置,即可在框架中生成一个测时候菜单。如下图:
![](http://www.spdevelop.com/plugin/interfaces/images/menu-1.gif)
框架对主菜单可通过SpDevelop.SpApi.MainMenu来调用
/// <summary>
/// 主菜单服务器
/// </summary>
public interface IMainMenuServer
{
/// <summary>
/// 主菜单
/// </summary>
MenuControl MainMenu { get; set; }
#region Add
/// <summary>
/// 添加菜单项
/// </summary>
/// <param name="menuPath">菜单路径,有菜单项注册名称和"/"组成,比如:File/New</param>
/// <param name="item">菜单项</param>
/// <returns>是否新增成功</returns>
bool AddMenuItem(string menuPath, MenuCommand item);
/// <summary>
/// 添加菜单
/// </summary>
/// <param name="mctrl"></param>
/// <returns></returns>
bool AddMenu(MenuControl mctrl);
/// <summary>
/// 添加菜单
/// </summary>
/// <param name="menuConfig"></param>
bool AddMenuItem(MenuItemConfig menuConfig);
#endregion
#region Get
/// <summary>
/// 获取菜单项
/// </summary>
/// <param name="menuPath">菜单路径,有菜单项注册名称和"/"组成,比如:File/New</param>
/// <param name="itemRegName">要获取的菜单名</param>
/// <returns>不存在对应的菜单项,则返回null</returns>
MenuCommand GetMenuItem(string menuPath, string itemRegName);
#endregion
/// <summary>
/// 显示菜单
/// </summary>
/// <param name="menuPath"></param>
/// <param name="itemRegName"></param>
/// <param name="bShow"></param>
void ShowMenuItem(string menuPath,string itemRegName,bool bShow);
/// <summary>
/// 启用菜单
/// </summary>
/// <param name="menuPath"></param>
/// <param name="itemRegName"></param>
/// <param name="bEnable"></param>
void EnableMenuItem(string menuPath,string itemRegName,bool bEnable);
/// <summary>
/// 显示菜单
/// 如果要显示的菜单存在与不显示的菜单中,则该菜单不经过隐藏就直接显示
/// </summary>
/// <param name="unVisiables">不显示的菜单的注册名称的集合</param>
/// <param name="visiables">要显示的菜单的注册名称的集合</param>
void SwitchShowMenuItem(ArrayList unVisiables,ArrayList visiables);
}