Exportar (0) Imprimir
Expandir todo

Personalización de la interfaz de usuario de 2007 Office Fluent mediante programación

Marzo de 2007

Publicado: 26 de Junio de 2007

Frank Rice, Microsoft Corporation

Este artículo se aplica a:   2007 Microsoft Office System, Microsoft Office Excel 2007, Microsoft Office PowerPoint 2007

Resumen: La interfaz de usuario (IU) de 2007 Microsoft Office Fluent reemplaza el sistema actual de menús en capas, barras de herramientas y paneles de tareas con un sistema más sencillo optimizado para la eficiencia y para facilitar la capacidad de detección.

En esta página

Introducción Introducción
Codifíquelo Codifíquelo
Léalo Léalo
Explórelo Explórelo

Introducción

La interfaz de usuario (IU) de 2007 Microsoft Office Fluent reemplaza el sistema actual de menús en capas, barras de herramientas y paneles de tareas con un sistema más sencillo optimizado para la eficiencia y para facilitar la capacidad de detección. La Cinta es parte de la interfaz de Office Fluent al igual que los menús contextuales (botón secundario), la barra de herramientas de acceso rápido y el botón de Microsoft Office. Puede agregar componentes a la Cinta con elementos de marcado XML y establecer propiedades en esos componentes mediante atributos. Puede asignar funcionalidad a los componentes mediante cualquier lenguaje de programación compatible con Microsoft Visual Studio 2005, como por ejemplo Microsoft Visual Basic.NET y C#, así como Microsoft Visual Basic para aplicaciones (VBA), Microsoft Visual C ++ y Microsoft Visual Basic 6.0.

Mire el video Duración: 10:17 |Tamaño: 6,47 MB | Tipo: Archivo WMV

Nota

Algunos de los recursos que se ofrecen en la sección Explórelo de esta página presentan un enfoque "de abajo a arriba" para personalizar la Cinta. Dichos recursos requieren la creación de los archivos y la escritura del código necesario de forma manual para desarrollar la Cinta. Aunque así puede visualizar y entender el proceso, también puede tardar mucho. Visual Studio 2005 Tools para 2007 Microsoft Office System Second Edition (VSTO 2005 SE) es un complemento gratuito y completamente compatible que le permite crear complementos en el nivel de aplicación, incluida la compatibilidad para la creación de Cintas personalizadas. VSTO 2005 SE automatiza muchos de los detalles y le ofrece componentes genéricos que puede usar como punto de partida para modificar la Cinta. Puede encontrar más información sobre VSTO 2005 SE en el Centro de desarrolladores de Microsoft Office.

Codifíquelo

Si quiere añadir elementos a la Cinta existente o crear una Cinta, puede usar una combinación de XML y código de programación.

Añadir controles con XML

XML ofrece un modelo jerárquico y declarativo de la Cinta. El XML de personalización de la cinta consiste de un elemento customUI que contiene un único elemento ribbon; el elemento ribbon es un contenedor del elemento tabs; el elemento tabs es el contenedor de los elementos tab; los elementos tab son contenedores de los elementos group; y los elementos group son contenedores de comandos y controles. Puede asignar valores de propiedad a comandos y componentes de la Cinta mediante atributos. Consulte el siguiente ejemplo:

Xml

<?xml version="1.0" encoding="utf-8" ?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" loadImage="LoadImage" >
    <ribbon startFromScratch="false">
        <tabs>
             <tab id="tab1" label="Button Demo" keytip="z" >
                <group id="group1" label="Demo Group">
                    <button id="button1"
                        enabled="true"
                        getLabel="GetLabel"
                        keytip="A1"
                        getScreentip="GetScreentip"
                        supertip="This is a supertip for the button."
                        getShowLabel="GetShowLabel"
                        getShowImage="GetShowImage"
                        getSize="GetSize"
                        visible="true"
                        image="camera.bmp"
                        onAction="OnAction" />
                    <button id="button2"
                        getLabel="GetLabel"
                        getShowLabel="GetShowLabel"
                        size="normal"
                        keytip="A2"
                        imageMso="TableDrawTable"
                        onAction="OnAction" />
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

Este ejemplo agrega a la Cinta una ficha personalizada titulada Button Demo y asigna texto al atributo label del elemento tab. Esta ficha contiene el grupo Demo Group, que a la vez contiene un botón personalizado titulado Insert Text. El elemento ribbon tiene un atributo startFromScratch al que se ha asignado el valor booleano: True. De esta manera se esconden las fichas integradas de la Cinta para que la ficha personalizada sea la única ficha mostrada. La figura siguiente muestra el resultado de aplicar este código XML a la Cinta en Microsoft Office Excel 2007:

Figura 1. Ejemplo de Cinta modificada en Office Excel 2007

Al igual que en el código de ejemplo, los componentes integrados se especifican de forma distinta que los personalizados. Algunos atributos tienen el sufijo Mso y otros no. Si se observa el ejemplo, el atributo id no tiene el calificador Mso. Esto le indica a Office que el botón es un control personalizado. En el atributo imageMso, el sufijo Mso le indica que es una imagen integrada. Los atributos con el sufijo Mso se refieren a controles, comandos, e imágenes integrados. Más adelante en este artículo aparece un ejemplo con estos atributos.

Asignación de funcionalidad a componentes de la Cinta

En el ejemplo XML anterior, el elemento botón tiene un atributo OnAction. Al hacer clic en el botón, se llama al método OnAction, o al procedimiento callback. El código del método OnAction confiere al botón su funcionalidad. Estos procedimientos se denominan callbacks porque al hacer clic en el botón la acción pone sobre aviso a la aplicación de Microsoft Office de que es necesario prestar atención al control. La aplicación de Office vuelve a llamar al método definido por el atributo OnAction y realiza cualquier acción contenida en el método. El procedimiento de devolución de llamada OnAction puede ser como el siguiente:

Visual Basic

Public Sub OnAction(ByVal control As IRibbonControl)
    applicationObject.Range("A1").Value = "You clicked the Insert Text button."
End Sub

C#

public void OnAction(IRibbonControl control)
{
    applicationObject.get_Range("A1:A1", missing).Value2 = "You clicked the Insert Text button.";
}

En este caso, al hacer clic en el botón, el texto se inserta en la celda A1 de la hoja de cálculo.

Léalo

Hay dos maneras de implementar una Cinta personalizada:

  • Modificar un archivo con formato XML abierto creado por una de las aplicaciones de Office compatibles con la IU de Office Fluent.

  • Usar un complemento.

Puede seleccionar la técnica en función del ámbito que necesita para la Cinta personalizada. Por ejemplo, modificar un archivo XML abierto tiene como resultado la personalización del documento, donde la Cinta personalizada está asociada con un documento concreto en lugar de la aplicación completa. Por otra parte, si se usa un complemento, se consigue personalización en la aplicación lo cuál significa que la Cinta personalizada se aplica a la aplicación completa independientemente del documento que esté abierto.

Crear una Cinta personalizada mediante un archivo XML abierto puede ser un proceso sencillo.

  1. Abra el documento como archivo ZIP y cambie la extensión del nombre de archivo.

  2. Agregue una carpeta que contenga el código XML de personalización de la Cinta

  3. Modifique el archivo de relación del documento para que señale a la carpeta personalizada

  4. Cambie la extensión de archivo del documento.

  5. Abra el documento en la aplicación de Office

  6. Agregue código al documento para proporcionar la funcionalidad personalizada de la Cinta.

El uso de un complemento para personalizar la Cinta también es sencillo. Después de crear el proyecto del complemento, debe implementar la interfaz IRibbonExtensibility, que se incluye en el espacio de nombre Microsoft.Office.Core. Esta interfaz contiene un método llamado GetCustomUI. Use este método para que el código XML de personalización de la Cinta vuelva a la aplicación de Office. A continuación, agregue procedimientos de programación que ofrecen su funcionalidad a la Cinta personalizada.

Personalización de la Cinta

En el procedimiento siguiente, se combina esta información para crear una ficha personalizada que contiene un grupo y botón personalizados de la Cinta en Office Excel 2007. Este botón inserta texto en la hoja de cálculo.

Para crear la solución del complemento

Para crear el proyecto, siga los pasos siguientes:

  1. Inicie Visual Studio 2005.

  2. En el menú Archivo, seleccione Nuevo y haga clic en Proyecto

  3. En el cuadro de diálogo Nuevo proyecto, en el panel Tipos de proyecto, amplíe Otros tipos de proyecto, haga clic en Extensibilidad y seleccione Complemento compartido

  4. En el cuadro Nombre, escriba DemoCinta y haga clic en Aceptar para crear el proyecto

  5. En la primera página del Asistente para complementos compartidos, haga clic en Siguiente

  6. En la página Seleccione un lenguaje de programación, seleccione Visual C# o Visual Basic y haga clic en Siguiente

  7. En la página Seleccione una aplicación host, borre todas las selecciones excepto Microsoft Excel y haga clic en Siguiente

  8. En la página Especifique un nombre y una descripción, escriba, opcionalmente, un nombre para el proyecto y una descripción, y haga clic en Siguiente

  9. En la página Elija las opciones del complemento, seleccione Me gustaría que mi complemento se cargue cuando lo haga la aplicación host, haga clic en Siguiente y haga clic en Finalizar

Visual Studio crea una solución que contiene dos proyectos: el complemento en sí mismo y un proyecto de instalación. (El proyecto de instalación le permite instalar el complemento en los equipos de otros usuarios y le facilita, en el momento del diseño, la instalación y desinstalación del complemento).

Para agregar referencias al proyecto

Para interactuar con Excel 2007 y el modelo de objetos de la Cinta, agregue referencias a una biblioteca de tipos.

  1. En el Explorador de soluciones, amplíe la carpeta Referencias.
    Si no puede ver la carpeta Referencias, en el menú Proyecto, haga clic en Mostrar todos los archivos.

  2. Elimine la referencia Microsoft.Office.Core

  3. Haga clic con el botón secundario en la carpeta Referencias y haga clic en Agregar referencia

  4. Haga clic en la ficha COM, seleccione Biblioteca de objetos de Microsoft Office 12.0 y haga clic en Aceptar.

  5. En la parte superior del archivo de código abierto, agregue al proyecto las siguientes instrucciones

Visual Basic

Imports Microsoft.Office.Core
Imports Excel = Microsoft.Office.Interop.Excel

using Microsoft.Office.Core;
using Excel = Microsoft.Office.Interop.Excel;

Para crear el archivo XML de personalización de la Cinta

Cree el archivo que agrega los componentes y establece sus propiedades.

  • En el menú Proyecto, haga clic en Agregar nuevo elemento

  • En el cuadro de diálogo Agregar nuevo elemento, seleccione Archivo XML. Asigne al nuevo archivo el nombre Cinta.xml y haga clic en Agregar.

  • En el nuevo archivo XML, agregue el marcado XML en la sección titulada Añadir controles con XML.

Para agregar el archivo XML como recurso incrustado

Para mejores resultados, use el archivo XML como un recurso dentro del archivo de recursos del proyecto

  1. En el Explorador de soluciones, seleccione Cinta.xml.

  2. En la ventana Propiedades, seleccione la propiedad Acción de generación y seleccione Recurso Incrustado en la lista de opciones.

  3. En el menú Proyecto, haga clic en Propiedades de CintaDemo

  4. Haga clic en la ficha Recursos

  5. En el Explorador de soluciones, arrastre Cinta.xml sobre la superficie de diseño Recursos

    Esta acción crea un recurso basado en archivo. De ahora en adelante, el archivo Cinta.xml se almacena automáticamente como un recurso de aplicación y puede recuperar este contenido mediante las características de lenguaje de Visual Basic o Visual C#.

  6. Cierre la ventana Recursos. Cuando el sistema lo solicite, haga clic en para guardar los recursos.

Para tener acceso a la aplicación host y trabajar con la Cinta

Debe crear una instancia de Excel y agregar la interfaz de la Cinta.

  1. En el Explorador de soluciones, haga clic con el botón secundario en Connect.cs o Connect.vb y haga clic en Ver código.

  2. Encuentre la declaración existente para la variable applicationObject y modifíquela para que haga referencia a un objeto Excel.Aplicación. Es decir, modifique la declaración para que quede como el código siguiente.

    Visual Basic

    Private applicationObject As Excel.Application
    
    private Excel.Application applicationObject;
    
  3. Modifique la primera línea existente del método OnConnection, que crea una instancia del objeto Excel.Aplicación.

    Visual Basic

    applicationObject = DirectCast(application, Excel.Application)
    
    applicationObject =(Excel.Application)application;
    
  4. En Visual Basic, modifique la línea de código, que se encuentra cerca del principio de la clase que comienza con Implements y agregue compatibilidad para implementar el espacio de nombres IRibbonExtensibility. Visual Basic inserta automáticamente el procedimiento GetCustomUI.

    Visual Basic

    Implements Extensibility.IDTExtensibility2, IRibbonExtensibility
    
  5. Cuando use código C#, al final de la instrucción public class Connect: agregue una coma y escriba el siguiente nombre de interfaz.

    C#

    IRibbonExtensibility
    
  6. Siga con C#, haga clic con el botón secundario en la interfaz que acaba de agregar, haga clic en Implementar interfaz y haga clic en Implementar interfaz explícitamente. De este modo se agrega un código auxiliar para el único miembro de la interfaz IRibbonExtensibility: GetCustomUI.

  7. Modifique el método GetCustomUI para que quede como el código siguiente.

    Visual Basic

    Public Function GetCustomUI(ByVal RibbonID As String) As String _
       Implements Microsoft.Office.Core.IRibbonExtensibility.GetCustomUI
       Return My.Resources.Ribbon
    End Function
    
    string IRibbonExtensibility.GetCustomUI(string RibbonID)
    {
      Return Properties.Resources.Ribbon;
    }
    
  8. Agregue el código de la sección Asignación de funcionalidad a componentes de la Cinta de este artículo en función del lenguaje de programación. Este método inserta texto en la hoja de cálculo en la celda A1.

Para probar el proyecto

Ahora está listo para ejecutar el proyecto.

  1. En el menú Archivo, haga clic en Guardar todo

  2. Si Excel 2007 se encuentra en ejecución, salga de él.

  3. En el menú Generar haga clic en Generar solución

  4. En el Explorador de soluciones, haga clic con el botón secundario en RibbonDemoSetup y haga clic en Generar

  5. Haga clic con el botón secundario en RibbonDemoInSetup y haga clic en Instalar

  6. Aparece el Asistente de instalación de RibbonDemo

  7. Haga clic en Siguiente en cada una de las páginas y, en la última pantalla, haga clic en Cerrar

  8. Inicie Excel.

    Aparece la ficha Button Demo como única ficha. Todas las otras fichas están ocultas porque el atributo startFromScratch se establece en True. También puede ver el grupo Group Demo. Observe, además, la imagen integrada del botón

  9. Haga clic en el botón Insert Text

    Excel inserta el texto en la hoja de cálculo en la celda A1 como se muestra en la figura 2

    Figura 2. Haga clic en el botón Insert Text para insertar texto en la celda A1

  10. Salga de Excel.

  11. En Visual Studio, en el Explorador de soluciones, haga clic con el botón secundario en RibbonDemoSetup y haga clic en Desinstalar

Explórelo

Existen varios recursos para personalizar la interfaz de usuario de Office Fluent.

Mostrar:
© 2014 Microsoft