我们有一个VS的补充,目前是从工具菜单启动的,该加载项包含一个UI,为用户提供了一些选项按钮,我现在要将其转换为可提供的顶级菜单相同的功能。
我已阅读this教程,它帮助我添加了一个新的顶级菜单,但无法真正理解所有步骤背后的逻辑。该指南并未真正说明每个步骤的创建或更改输出的方式 这些步骤创建的是一个新的顶级菜单,其下方有一个项目。我正在尝试在我的菜单中创建一些层次结构(即顶级 - >子类别 - >命令),但是所有组/菜单/ ID结构都失去了abit。 这些文件的结构有没有明确的解释?文档或教程?如果有人有这方面的经验并且可以帮助澄清事情我会非常感激...
答案 0 :(得分:1)
我没有尝试过分层菜单项,但是我遇到了与Visual SDK .vcst文件类似的问题。这是一种痛苦。你可以做几件事。
答案 1 :(得分:0)
我认为,如今“外接程序”是指作为VS软件包的扩展(使用VS SDK),因为“外接程序”是VS 2013及更低版本的较旧形式的扩展。 (如果您真的是“外接程序”,请参阅我的示例HOWTO: Adding buttons, commandbars and toolbars to Visual Studio .NET from an add-in)
程序包使用.vsct文件。要回答您的问题,请参阅我的示例here的.vsct文件:
(要了解更多信息,请参见上下文菜单,工具栏等的其他内容)。在.vcst文件中,他们使用“ CommandPlacements”将项目的定义与“ placement”分开,并使用注释来解释3种项目之间的关系:
记住规则:
答案 2 :(得分:-1)
代码示例
<?xml version="1.0" encoding="utf-8"?>
<CommandTable xmlns="...">
<!-- Extern section unchanged -->
<Commands package="guidHowToPackagePkg">
<Menus>
<!-- New menu added -->
<Menu guid="guidBasicVSCTSampleCmdSet" id="SubMenu" priority="0x200"
type="Menu">
<Parent guid="guidBasicVSCTSampleCmdSet" id="TopLevelMenuGroup" />
<Strings>
<ButtonText>Other Commands</ButtonText>
<CommandName>Other Commands</CommandName>
</Strings>
</Menu>
</Menus>
<Groups>
<!-- Group changed to SubMenuGroup and attached to SubMenu -->
<Group guid="guidBasicVSCTSampleCmdSet" id="SubMenuGroup"
priority="0x0600">
<Parent guid="guidBasicVSCTSampleCmdSet" id="SubMenu"/>
</Group>
</Groups>
<Buttons>
<!-- We attached these two buttons to SubMenuGroup -->
<Button guid="guidBasicVSCTSampleCmdSet" id="ThirdCommand" priority="0x0100"
type="Button">
<Parent guid="guidBasicVSCTSampleCmdSet" id="SubMenuGroup" />
<Icon guid="guidImages" id="bmpPicX" />
<Strings>
<CommandName>ThirdCommand</CommandName>
<ButtonText>Third Command</ButtonText>
</Strings>
</Button>
<Button guid="guidBasicVSCTSampleCmdSet" id="FourthCommand"
priority="0x0101" type="Button">
<Parent guid="guidBasicVSCTSampleCmdSet" id="SubMenuGroup" />
<Icon guid="guidImages" id="bmpPicArrows" />
<Strings>
<CommandName>FourthCommand</CommandName>
<ButtonText>Fourth Command</ButtonText>
</Strings>
</Button>
</Buttons>
</Commands>
<Symbols>
<!-- We add a SubMenu and changed SubMenuGroup -->
<GuidSymbol name="guidBasicVSCTSampleCmdSet" value="...">
<IDSymbol name="SubMenu" value="0x0101" />
<IDSymbol name="SubMenuGroup" value="0x0201" />
</GuidSymbol>
</Symbols>
</CommandTable>
这为您提供了以下顶级菜单:
这里有关于该主题的完整章节。这几乎解释了(层级)菜单上的所有内容。