Compartilhar via


Visão geral do modelo de objeto da faixa de opções

O runtime das Ferramentas do Visual Studio para Office expõe um modelo de objeto fortemente tipado que você pode usar para obter e definir as propriedades dos controles da Faixa de Opções em tempo de execução. Por exemplo, você pode preencher dinamicamente controles de menu ou mostrar e ocultar controles contextualmente. Você também pode adicionar guias, grupos e controles a uma faixa de opções, mas somente antes que a faixa de opções seja carregada pelo aplicativo do Office. Para obter informações, consulte Definir propriedades que se tornam somente leitura.

Aplica-se a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de suplemento VSTO para os seguintes aplicativos: Excel; InfoPath 2013 e InfoPath 2010; Outlook; PowerPoint; Project; Visio; Word. Para obter mais informações, consulte Os recursos disponíveis pelo aplicativo do Office e pelo tipo de projeto.

Esse modelo de objeto da Faixa de Opções consiste principalmente na classe Faixa de Opções, nos Eventos da Faixa de Opções e nas classes de controle Faixa de Opções.

Classe de faixa de opções

Quando você adiciona um novo item Faixa de Opções (Visual Designer) a um projeto, o Visual Studio adiciona uma classe Faixa de Opções ao seu projeto. A classe Ribbon herda da RibbonBase classe.

Essa classe aparece como uma classe parcial dividida entre o arquivo de código da Faixa de Opções e o arquivo de código do Designer da Faixa de Opções.

Eventos da Faixa de Opções

A classe Ribbon contém os três seguintes eventos:

Event Description
Load Gerado quando o aplicativo do Office carrega a personalização da Faixa de Opções. O Load manipulador de eventos é adicionado automaticamente ao arquivo de código da Barra de Ferramentas. Use este manipulador de eventos para executar o código personalizado quando a faixa de opções é carregada.
LoadImage Permite armazenar imagens em cache na personalização da Faixa de Opções quando a faixa de opções for carregada. Você poderá obter um pequeno ganho de desempenho se escrever código para armazenar em cache as imagens da Faixa de Opções neste manipulador de eventos. Para obter mais informações, consulte LoadImage.
Close Gerado quando a instância da Faixa de Opções é fechada.

Controles da faixa de opções

O Microsoft.Office.Tools.Ribbon namespace contém um tipo para cada controle que você vê no grupo Controles da Faixa de Opções do Office da Caixa de Ferramentas.

A tabela a seguir mostra o tipo para cada Ribbon controle. Para obter uma descrição de cada controle, consulte a visão geral da Faixa de Opções.

Nome do controle Nome da classe
Caixa RibbonBox
Botão RibbonButton
ButtonGroup RibbonButtonGroup
Caixa de Seleção RibbonCheckBox
ComboBox RibbonComboBox
DropDown RibbonDropDown
EditBox RibbonEditBox
Galeria RibbonGallery
Grupo RibbonGroup
Rótulo RibbonLabel
Menu RibbonMenu
Separador RibbonSeparator
Botão Dividido RibbonSplitButton
Tab RibbonTab
Botão de alternância RibbonToggleButton

O Microsoft.Office.Tools.Ribbon namespace usa o prefixo "Ribbon" para esses tipos para evitar uma colisão de nome com os nomes das classes de controle no System.Windows.Forms namespace.

Quando você adiciona um controle ao Designer da Faixa de Opções, o Designer da Faixa de Opções declara a classe para esse controle como um campo no arquivo de código do Designer de Faixa de Opções.

Tarefas comuns usando as propriedades dos controles da Faixa de Opções

Cada Ribbon controle contém propriedades que você pode usar para executar várias tarefas, como atribuir um rótulo a um controle ou ocultar e mostrar controles.

Em alguns casos, as propriedades se tornam somente para leitura depois que a Faixa de Opções é carregada ou depois que um controle é adicionado a um menu dinâmico. Para obter mais informações, consulte Definir propriedades que se tornam só de leitura.

A tabela a seguir descreve algumas das tarefas que você pode executar usando Ribbon propriedades de controle.

Para esta tarefa: Faça isso:
Ocultar ou mostrar um controle. Use a propriedade Visible.
Habilitar ou desabilitar um controle. Use a propriedade Enabled.
Defina o tamanho de um controle. Use a propriedade ControlSize.
Obtenha a imagem que aparece em um controle. Utilize a propriedade Image.
Altere o rótulo de um comando. Use a propriedade Label.
Adicione dados definidos pelo usuário a um controle. Use a propriedade Tag.
Obtenha os itens em um RibbonBox, RibbonDropDown, RibbonGallery ou

RibbonSplitButton Controle.
Use a propriedade Items.
Adicione itens a um RibbonComboBox, RibbonDropDownou RibbonGallery controle. Use a propriedade Items.
Adicionar controles a um RibbonMenu. Use a propriedade Items.

Para adicionar controles ao RibbonMenu após o carregamento da Faixa de Opções no aplicativo do Office, você deve definir a propriedade Dynamic como true antes que a Faixa de Opções seja carregada no aplicativo do Office. Para obter informações, consulte Definir propriedades que se tornam somente leitura.
Obter o item selecionado de um RibbonComboBox,

RibbonDropDown ou RibbonGallery.
Use a propriedade "SelectedItem". Para um RibbonComboBox, use a propriedade Text.
Obter os grupos em um RibbonTab. Use a Groups propriedade.
Especifique o número de linhas e colunas que aparecem em um RibbonGallery. Use as propriedades RowCount e ColumnCount.

Definir propriedades que se tornam somente leitura

Algumas propriedades só podem ser definidas antes de a faixa de opções carregar. Há três locais para definir essas propriedades:

  • Na janela Propriedades do Visual Studio.

  • No construtor da classe Ribbon .

  • No método CreateRibbonExtensibilityObject da classe ThisAddin, ThisWorkbook ou ThisDocument do seu projeto.

    Os menus dinâmicos fornecem algumas exceções. Você pode criar novos controles, definir suas propriedades e adicioná-las a um menu dinâmico em tempo de execução, mesmo após a faixa de opções que contém o menu ser carregada.

    As propriedades dos controles que você adiciona a um menu dinâmico podem ser definidas a qualquer momento.

    Para obter mais informações, consulte Propriedades que se tornam de leitura apenas.

Definir propriedades no construtor da faixa de opções

Você pode definir as propriedades de um Ribbon controle no construtor da classe Ribbon . Esse código deve aparecer após a chamada para o InitializeComponent método. O exemplo a seguir adiciona um novo botão a um grupo se a hora atual for 17:00 Horário do Pacífico (UTC-8) ou posterior.

Adicione o código seguinte:

public Ribbon1()
    : base(Globals.Factory.GetRibbonFactory())
{
    InitializeComponent();
    if (System.DateTime.Now.Hour > 16)
    {
        Microsoft.Office.Tools.Ribbon.RibbonButton button =
            this.Factory.CreateRibbonButton();
        button.Label = "New Button";
        group1.Items.Add(button);
    }
}

Em projetos do Visual C# que você atualizou do Visual Studio 2008, o construtor aparece no arquivo de código da Faixa de Opções.

Em projetos do Visual Basic ou em projetos do Visual C# criados no Visual Studio 2013, o construtor aparece no arquivo de código do Designer da Faixa de Opções. Esse arquivo se chama YourRibbonItem. Designer.cs ou YourRibbonItem. Designer.vb. Para ver esse arquivo em projetos do Visual Basic, primeiro clique no botão Mostrar Todos os Arquivos no Gerenciador de Soluções.

Definir propriedades no método CreateRibbonExtensibilityObject

Você pode definir as propriedades de um Ribbon controle ao substituir o método CreateRibbonExtensibilityObject na classe ThisAddin, ThisWorkbook ou ThisDocument do seu projeto. Para mais informações sobre o método CreateRibbonExtensibilityObject, consulte a Ribbon Overview.

O exemplo a seguir define as propriedades do Ribbon no método da classe ThisWorkbook de um projeto de pasta de trabalho do Excel.

Adicione o código seguinte:

protected override Microsoft.Office.Core.IRibbonExtensibility
    CreateRibbonExtensibilityObject()
{
    bool myCondition = false;
    if (myCondition == true)
    {
        Ribbon1 tempRibbon = new Ribbon1();
        tempRibbon.tab1.ControlId.ControlIdType =
            Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
        tempRibbon.tab1.ControlId.OfficeId = "TabHome";
        return Globals.Factory.GetRibbonFactory().CreateRibbonManager( 
            new Microsoft.Office.Tools.Ribbon.IRibbonExtension[]
             { tempRibbon });
    }
    else
    {
        Ribbon2 tempRibbon = new Ribbon2();
        tempRibbon.tab1.ControlId.ControlIdType =
            Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
        tempRibbon.tab1.ControlId.OfficeId = "TabInsert";
        return Globals.Factory.GetRibbonFactory().CreateRibbonManager(
                            new Microsoft.Office.Tools.Ribbon.IRibbonExtension[] { tempRibbon });
    }
}

Propriedades que se tornam somente leitura

A tabela a seguir mostra as propriedades que só podem ser definidas antes do carregamento da faixa de opções.

Observação

Você pode definir as propriedades dos controles em menus dinâmicos a qualquer momento. Essa tabela não se aplica nesse caso.

Propriedade Classe de controle de faixa de opções
BoxStyle RibbonBox
ButtonType RibbonSplitButton
ColumnCount RibbonGallery
ControlId RibbonTab
DialogLauncher RibbonGroup
Dinâmico RibbonMenu
Global OfficeRibbon
Grupos RibbonTab
ImageName RibbonButton

RibbonComboBox

RibbonDialogLauncher

RibbonDropDown

RibbonEditBox

RibbonGallery

RibbonMenu

RibbonSplitButton

RibbonToggleButton
TamanhoDoItem RibbonMenu

RibbonSplitButton
MaxLength RibbonComboBox

RibbonEditBox
Nome RibbonComponent
Cargo RibbonButton

RibbonCheckBox

RibbonGallery

RibbonGroup

RibbonMenu

RibbonSeparator

RibbonSplitButton

RibbonTab

RibbonToggleButton
RibbonType OfficeRibbon
RowCount RibbonGallery
ShowItemImage RibbonComboBox

RibbonDropDown

RibbonGallery
ShowItemLabel RibbonDropDown

RibbonGallery
ShowItemSelection RibbonGallery
SizeString RibbonComboBox

RibbonDropDown

RibbonEditBox
StartFromScratch OfficeRibbon
Guias OfficeRibbon
Title RibbonSeparator

Definir propriedades para Ribbons que aparecem nos inspetores do Outlook

Uma nova instância da faixa de opções é criada sempre que um usuário abre um Inspetor no qual a faixa de opções é exibida. No entanto, você pode definir as propriedades listadas na tabela acima somente antes que a primeira instância do Ribbon seja criada. Depois que a primeira instância é criada, essas propriedades se tornam somente leitura porque a primeira instância define o arquivo XML que o Outlook usa para carregar a faixa de opções.

Se você tiver uma lógica condicional que define qualquer uma dessas propriedades para um valor diferente quando outras instâncias da faixa de opções (ribbon) forem criadas, esse código não terá efeito.

Observação

Verifique se a propriedade Name está definida para cada controle que você adiciona a uma Faixa de Opções do Outlook. Se você adicionar um controle a uma Faixa de Opções do Outlook em tempo de execução, deverá definir essa propriedade em seu código. Se você adicionar um controle a uma Barra de Ferramentas do Outlook em tempo de criação, a propriedade Name será definida automaticamente.

Eventos de controle da faixa de opções

Cada classe de controle contém um ou mais eventos. A tabela a seguir descreve esses eventos.

Event Description
Click Ocorre quando um controle é clicado.
TextChanged Ocorre quando o texto de uma caixa de edição ou caixa de combinação é alterado.
Carregando Itens Ocorre quando a coleção de itens do controle é solicitada pelo Office. O Office armazena em cache a coleção Itens até que seu código altere as propriedades do controle ou chame o InvalidateControl método.
ButtonClick Ocorre quando um botão em um RibbonGallery ou RibbonDropDown é clicado.
SeleçãoAlterada Ocorre quando a seleção em um RibbonDropDown ou RibbonGallery é alterada.
DialogLauncherClick Ocorre quando o ícone do inicializador de diálogo no canto inferior direito de um grupo é clicado.

Os manipuladores de eventos para esses eventos têm os dois parâmetros a seguir.

Parâmetro Description
remetente Um Object que representa o controle que gerou o evento.
e Um RibbonControlEventArgs que contém um IRibbonControl. Use este controle para acessar qualquer propriedade que não esteja disponível no modelo de objeto do Ribbon fornecido pelas Ferramentas do Visual Studio para o tempo de execução do Office.