VSPackage:使用代码动态创建工具栏

时间:2015-09-23 21:58:14

标签: c# dynamic menu toolbar vspackage

是否可以动态(通过代码)为vspackage定义整个工具栏?

我看到可以使用菜单(参见https://msdn.microsoft.com/en-us/library/bb166492.aspx)。虽然工具栏"是"菜单,遗憾的是,此示例依赖于onDestroyView()的菜单,因此type="MenuController",将不再可能。

当然,我可以以某种方式获得type="Toolbar"并添加CommandBar,但我希望以VSPackage方式(不是旧的AddIn-way,我不知道未来如何)证明它仍然是..)。

我的承诺的动机是:编写我要添加到VSCT文件的任何和所有命令(+图标等)是令人难以置信的烦人和耗时。如果我可以在代码中做所有事情,我可以为这个恼人的任务构建一个库,添加新命令将是轻而易举的事。

1 个答案:

答案 0 :(得分:-1)

强烈建议不要每次加载包而不是使用.vsct时按代码创建包的用户界面,因为使用.vsct包不需要在VS启动时加载,而是在加载时加载单击按钮(或以任何方式执行命令)。如果您的包在加载时按代码创建UI,则需要将其标记为在VS启动时加载(ProvideAutoload属性为“No solution”值)。如果每个包都这样做,VS启动会非常慢。

也就是说,请参阅IVsProfferCommands4界面。