Agregar un comando a la barra de herramientas de Explorador de soluciones
En este tutorial se muestra cómo agregar un botón a la barra de herramientas de Explorador de soluciones.
Cualquier comando de una barra de herramientas o menú se denomina botón en Visual Studio. Cuando se hace clic en el botón, se ejecuta el código del controlador de comandos. Normalmente, los comandos relacionados se agrupan para formar un grupo. Los menús o barras de herramientas actúan como contenedores para grupos. La prioridad determina el orden en el que aparecen comandos individuales de un grupo en el menú o en la barra de herramientas. Puede impedir que se muestre un botón en la barra de herramientas o en el menú controlando su visibilidad. Un comando que aparece en una <VisibilityConstraints>
sección del archivo .vsct solo aparece en el contexto asociado. No se puede aplicar la visibilidad a los grupos.
Para obtener más información sobre menús, comandos de barra de herramientas y archivos .vsct , vea Comandos, menús y barras de herramientas.
Nota:
Use archivos de tabla de comandos XML (.vsct) en lugar de archivos de configuración de tabla de comandos (.ctc) para definir cómo aparecen los menús y comandos en los VSPackages. Para obtener más información, vea Tabla de comandos de Visual Studio (. Vsct) archivos.
Creación de una extensión con un comando de menú
Cree un proyecto VSIX denominado SolutionToolbar
. Agregue una plantilla de elemento de comando de menú denominada ToolbarButton. Para obtener información sobre cómo hacerlo, vea Crear una extensión con un comando de menú.
Agregar un botón a la barra de herramientas de Explorador de soluciones
En esta sección del tutorial se muestra cómo agregar un botón a la barra de herramientas de Explorador de soluciones. Cuando se hace clic en el botón, se ejecuta el código del método de devolución de llamada.
En el archivo ToolbarButtonPackage.vsct , vaya a la
<Symbols>
sección . El<GuidSymbol>
nodo contiene el grupo de menús y el comando que generó la plantilla de paquete. Agregue un<IDSymbol>
elemento a este nodo para declarar el grupo que contendrá el comando.<IDSymbol name="SolutionToolbarGroup" value="0x0190"/>
En la
<Groups>
sección, después de la entrada de grupo existente, defina el nuevo grupo que declaró en el paso anterior.<Group guid="guidToolbarButtonPackageCmdSet" id="SolutionToolbarGroup" priority="0xF000"> <Parent guid="guidSHLMainMenu" id="IDM_VS_TOOL_PROJWIN"/> </Group>
Al establecer el par
guidSHLMainMenu
GUID:ID primario en yIDM_VS_TOOL_PROJWIN
se coloca este grupo en la barra de herramientas de Explorador de soluciones y se establece un valor de prioridad alta, se coloca después de los demás grupos de comandos.En la
<Buttons>
sección , cambie el identificador primario de la entrada generada<Button>
para reflejar el grupo que definió en el paso anterior. El elemento modificado<Button>
debe tener este aspecto:<Button guid="guidToolbarButtonPackageCmdSet" id="ToolbarButtonId" priority="0x0100" type="Button"> <Parent guid="guidToolbarButtonPackageCmdSet" id="SolutionToolbarGroup" /> <Icon guid="guidImages" id="bmpPicStrikethrough" /> <Strings> <ButtonText>Invoke ToolbarButton</ButtonText> </Strings> </Button>
Compile la solución y comience la depuración. Aparece la instancia experimental.
La barra de herramientas Explorador de soluciones debe mostrar el nuevo botón de comando a la derecha de los botones existentes. El icono del botón es el tachado.
Haga clic en el botón nuevo.
Se debe mostrar un cuadro de diálogo que tenga el mensaje ToolbarButtonPackage Inside SolutionToolbar.ToolbarButton.MenuItemCallback().
Controlar la visibilidad de un botón
En esta sección del tutorial se muestra cómo controlar la visibilidad de un botón en una barra de herramientas. Al establecer un contexto en uno o varios proyectos en la <VisibilityConstraints>
sección del archivo SolutionToolbar.vsct , se restringe un botón para que aparezca solo cuando un proyecto o proyectos estén abiertos.
Para mostrar un botón cuando uno o varios proyectos están abiertos
En la
<Buttons>
sección de ToolbarButtonPackage.vsct, agregue dos marcas de comandos al elemento existente<Button>
, entre las<Strings>
etiquetas y<Icons>
.<CommandFlag>DefaultInvisible</CommandFlag> <CommandFlag>DynamicVisibility</CommandFlag>
Las
DefaultInvisible
marcas yDynamicVisibility
deben establecerse para que las entradas de la<VisibilityConstraints>
sección puedan surtir efecto.Cree una
<VisibilityConstraints>
sección que tenga dos<VisibilityItem>
entradas. Coloque la nueva sección justo después de la etiqueta de cierre</Commands>
.<VisibilityConstraints> <VisibilityItem guid="guidToolbarButtonPackageCmdSet" id="ToolbarButtonId" context="UICONTEXT_SolutionHasSingleProject" /> <VisibilityItem guid="guidToolbarButtonPackageCmdSet" id="ToolbarButtonId" context="UICONTEXT_SolutionHasMultipleProjects" /> </VisibilityConstraints>
Cada elemento de visibilidad representa una condición en la que se muestra el botón especificado. Para aplicar varias condiciones, debe crear varias entradas para el mismo botón.
Compile la solución y comience la depuración. Aparece la instancia experimental.
La barra de herramientas de Explorador de soluciones no contiene el botón tachado.
Abra cualquier solución que contenga un proyecto.
El botón tachado aparece en la barra de herramientas a la derecha de los botones existentes.
En el menú Archivo , haga clic en Cerrar solución. El botón desaparece de la barra de herramientas.
Visual Studio controla la visibilidad del botón hasta que se carga VSPackage. Una vez cargado VSPackage, la visibilidad del botón se controla mediante VSPackage. Para obtener más información, vea MenuCommands vs. OleMenuCommands.