Share via


Agregar iconos a comandos de menú

Los comandos pueden aparecer en los menús y las barras de herramientas. En las barras de herramientas, es habitual que se muestre un comando con solo un icono (para ahorrar espacio) mientras que en los menús normalmente aparece un comando con un icono y texto.

Los iconos tienen un ancho de 16 píxeles por 16 píxeles y pueden ser profundidad de color de 8 bits (256 colores) o profundidad de color de 32 bits (color verdadero). Se prefieren los iconos de color de 32 bits. Normalmente, los iconos se organizan en una sola fila horizontal en un solo mapa de bits, aunque se permiten varios mapas de bits. Este mapa de bits se declara en el archivo .vsct junto con los iconos individuales disponibles en el mapa de bits. Consulte la referencia del elemento Bitmaps para obtener más detalles.

Agregar un icono a un comando

En el procedimiento siguiente se supone que tiene un proyecto VSPackage existente con un comando de menú. Para obtener información sobre cómo hacerlo, consulte Creación de una extensión con un comando de menú.

  1. Cree un mapa de bits con una profundidad de color de 32 bits. Un icono siempre es de 16 x 16, por lo que este mapa de bits debe tener un alto de 16 píxeles y un múltiplo de 16 píxeles de ancho.

    Cada icono se coloca en el mapa de bits junto al otro en una sola fila. Use el canal alfa para indicar lugares de transparencia en cada icono.

    Si usa una profundidad de color de 8 bits, use magenta, RGB(255,0,255), como transparencia. Sin embargo, se prefieren los iconos de color de 32 bits.

  2. Copie el archivo de icono en el directorio Resources del proyecto VSPackage. En el Explorador de soluciones, agregue el icono al proyecto. (Seleccione Recursos y, en el menú contextual, haga clic en Agregar, en Elemento existente y seleccione el archivo de icono).

  3. Abra el archivo .vsct en el editor.

  4. Agregue un GuidSymbol elemento con un nombre testIcon. Cree un GUID (Herramientas>Crear GUID, seleccione Formato del Registro y haga clic en Copiar) y péguelo en el value atributo . El resultado debería tener el siguiente aspecto:

    <!-- Create your own GUID -->
    <GuidSymbol name="testIcon" value="{00000000-0000-0000-0000-0000}">
    
  5. Agregue un <IDSymbol> para el icono. El name atributo es el identificador del icono e value indica su posición en la franja, si existe. Si solo hay un icono, agregue 1. El resultado debería tener el siguiente aspecto:

    <!-- Create your own GUID -->
    <GuidSymbol name="testIcon" value="{00000000-0000-0000-0000-0000}">
        <IDSymbol name="testIcon1" value="1" />
    </GuidSymbol>
    
  6. Cree un <Bitmap> elemento en la sección dentro <Commands> de la <Bitmaps> sección del archivo .vsct para representar el mapa de bits que contiene los iconos.

    • Establezca el guid valor en el nombre del <GuidSymbol> elemento que creó en el paso anterior.

    • Establezca el href valor en la ruta de acceso relativa del archivo de mapa de bits (en este caso Resources\<icon nombre> de archivo.

    • Establezca el usedList valor en idSymbol que creó anteriormente. Este atributo especifica una lista delimitada por comas de los iconos que se van a usar en VSPackage. Los iconos que no están en la lista se excluyen de la compilación de formularios.

      El bloque Mapa de bits debe tener este aspecto:

      <Bitmap guid="testIcon" href="Resources\<icon file name>" usedList="testIcon1"/>
      
  7. En el elemento existente <Button> , establezca el Icon elemento en los valores GUIDSymbol e IDSymbol que creó anteriormente. Este es un ejemplo de un elemento Button con esos valores:

    <Button guid="guidAddIconCmdSet" id="cmdidMyCommand" priority="0x0100" type="Button">
        <Parent guid="guidAddIconCmdSet" id="MyMenuGroup" />
        <Icon guid="testIcon" id="testIcon1" />
        <Strings>
            <ButtonText>My Command name</ButtonText>
        </Strings>
    </Button>
    
  8. Pruebe el icono. Compile la solución y comience la depuración. En la instancia experimental, busque el comando . Debería mostrar el icono que agregó.