Añadir una barra de herramientas a una ventana de herramientas
En este tutorial se muestra cómo añadir una barra de herramientas a una ventana de herramientas.
Una barra de herramientas es una franja horizontal o vertical que contiene botones enlazados a comandos. La longitud de una barra de herramientas de una ventana de herramientas es siempre la misma que el ancho o el alto de la ventana de herramientas, dependiendo de dónde está acoplada la barra de herramientas.
A diferencia de las barras de herramientas del IDE, la barra de herramientas de una ventana de herramientas debe estar acoplada y no se puede mover ni personalizar. Si VSPackage está escrito en código no administrado, la barra de herramientas se puede acoplar en cualquier borde.
Para obtener más información sobre cómo agregar una barra de tareas, consulte Adición de una barra de tareas.
Crear una barra de herramientas para una ventana de herramientas
Cree un proyecto VSIX denominado
TWToolbar
que tenga un comando de menú denominado TWTestCommand y una ventana de herramientas denominada TestToolWindow. Para obtener más información, consulte Crear una extensión con un comando de menú y Crear una extensión con una ventana de herramientas. Debe agregar la plantilla de elemento de comando antes de agregar la plantilla de ventana de herramientas.En TWTestCommandPackage.vsct, busque la sección Símbolos. En el nodo GuidSymbol denominado guidTWTestCommandPackageCmdSet, declare una barra de herramientas y un grupo de barras de herramientas, como se indica a continuación.
<IDSymbol name="TWToolbar" value="0x1000" /> <IDSymbol name="TWToolbarGroup" value="0x1050" />
En la parte superior de la sección
Commands
, cree una secciónMenus
. Agregue un elementoMenu
para definir la barra de herramientas.<Menus> <Menu guid="guidTWTestCommandPackageCmdSet" id="TWToolbar" type="ToolWindowToolbar"> <CommandFlag>DefaultDocked</CommandFlag> <Strings> <ButtonText>Test Toolbar</ButtonText> <CommandName>Test Toolbar</CommandName> </Strings> </Menu> </Menus>
Las barras de herramientas no se pueden anidar como submenús. Por lo tanto, no es necesario asignar un elemento primario. Además, no es necesario establecer una prioridad, ya que el usuario puede mover las barras de herramientas. Normalmente, el lugar inicial de una barra de herramientas se define mediante programación, pero los cambios posteriores del usuario se conservan.
En la sección Grupos, defina un grupo para que contenga los comandos de la barra de herramientas.
<Group guid="guidTWTestCommandPackageCmdSet" id="TWToolbarGroup" priority="0x0000"> <Parent guid="guidTWTestCommandPackageCmdSet" id="TWToolbar" /> </Group>
En la sección Botones, cambie el elemento primario del elemento Botón existente al grupo de barras de herramientas para que se muestre la barra de herramientas.
<Button guid="guidTWTestCommandPackageCmdSet" id="TWTestCommandId" priority="0x0100" type="Button"> <Parent guid="guidTWTestCommandPackageCmdSet" id="TWToolbarGroup" /> <Icon guid="guidImages" id="bmpPic1" /> <Strings> <ButtonText>Invoke TWTestCommand</ButtonText> </Strings> </Button>
De forma predeterminada, si una barra de herramientas no tiene comandos, no aparece.
Dado que la nueva barra de herramientas no se agrega automáticamente a la ventana de herramientas, la barra de herramientas debe agregarse explícitamente. Esta técnica se analiza en la sección siguiente.
Agregar la barra de herramientas a la ventana de herramientas
En TWTestCommandPackageGuids.cs agregue las líneas siguientes.
public const string guidTWTestCommandPackageCmdSet = "00000000-0000-0000-0000-0000"; // get the GUID from the .vsct file public const int TWToolbar = 0x1000;
En TestToolWindow.cs, agregue lo siguiente usando la instrucción.
using System.ComponentModel.Design;
En el constructor TestToolWindow, agregue la línea siguiente.
this.ToolBar = new CommandID(new Guid(TWTestCommandPackageGuids.guidTWTestCommandPackageCmdSet), TWTestCommandPackageGuids.TWToolbar);
Probar la barra de herramientas en la ventana de herramientas
Compile la solución y comience la depuración. Debería aparecer la instancia experimental de Visual Studio.
En el menú Ver/Otras ventanas, haga clic en la Ventana de herramientas de prueba para mostrar la ventana de herramientas.
Debería ver una barra de herramientas (parece el icono predeterminado) en la parte superior izquierda de la ventana de herramientas, justo debajo del título.
En la barra de herramientas, haga clic en el icono para mostrar el mensaje TWTestCommandPackage Inside TWToolbar.TWTestCommand.MenuItemCallback().