【问题标题】:Show a Visual Studio Extension Toolbar by default默认显示 Visual Studio 扩展工具栏
【发布时间】:2012-06-14 14:54:56
【问题描述】:

在 Visual Studio 扩展中,我在 .vsct 文件中定义了一个工具栏:

      <Menu guid="guidVsCmdSet" id="MyToolbar" type="Toolbar" >
        <CommandFlag>TextChanges</CommandFlag>
        <CommandFlag>DefaultDocked</CommandFlag>      
        <Strings>
          <ButtonText>My Tools/ButtonText>
        </Strings>
      </Menu>

当我在 Visual Studio Experimental hive 中启动我的扩展时,我可以通过右键单击命令栏区域手动打开我的工具栏。

当我第一次运行扩展程序时,有什么方法可以让工具栏默认显示?

我尝试了其他几个 CommandFlag,但它们似乎没有执行此行为:

    <CommandFlag>AlwaysCreate</CommandFlag>
    <CommandFlag>DontCache</CommandFlag>   

【问题讨论】:

    标签: visual-studio visual-studio-addins vsx visual-studio-extensions


    【解决方案1】:

    您要查看的是可见性约束。下面的示例使用 GUID_TextEditorFactory,它在文本编辑器处于活动状态时使其可见(并在例如设计器处于活动状态时隐藏)。

    我不能 100% 确定正确的上下文是什么让它始终可见,但我的猜测是 UICONTEXT_NoSolution(或者可能是 GUID_VSStandardCommandSet97)。

    <CommandTable>
        <Commands.../>
        <VisibilityConstraints>
            <VisibilityItem guid="guidVsCmdSet" id="MyToolbar" context="GUID_TextEditorFactory" />
        </VisibilityConstraints>
    </CommandTable>
    

    【讨论】:

    • 像魅力一样工作!有关上下文的一些详细信息,请参阅this link 中的“使用可见性上下文”部分。
    • UICONTEXT_NoSolution 仅在启动时显示。如果没有解决办法。我可以添加 UICONTEXT_EmptySolution、UICONTEXT_SolutionHasMultipleProjects 和 UICONTEXT_SolutionHasSingleProject.... 是否可以只有一个选项来自动加载和始终显示?像 VS 中的标准工具栏?
    【解决方案2】:

    在此解决方法中了解如何执行此操作:LVN! Sidebar #7 - Showing a toolbar at Visual Studio startup

    【讨论】:

    • 感谢您的链接。通过使用 DTE 命令式地查找和显示我的工具栏,这实际上是我最终所做的。我所做的唯一更改是跟踪我的工具栏第一次显示的时间,然后保持一个布尔值,表明我已经这样做了。这样,每次打开 Visual Studio 时都不会打开工具栏(如果用户决定禁用/隐藏我的工具栏)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    相关资源
    最近更新 更多