Compartilhar via


Atualizar personalizações da Faixa de Opções migradas para o .NET Framework 4.5

Se o seu projeto contiver uma personalização da Faixa de Opções que foi criada usando o item de projeto Faixa de Opções (Visual Designer), você deverá fazer as seguintes alterações no código do projeto se a estrutura de destino for alterada para o .NET Framework 4 ou posterior.

  • Modifique o código da Faixa de Opções gerado.

  • Modifique qualquer código que instancie controles da Faixa de Opções em tempo de execução, manipule eventos da Faixa de Opções ou defina a posição de um componente da Faixa de Opções programaticamente.

Atualizar o código da Faixa de Opções gerado

Se a estrutura de destino do seu projeto for alterada para o .NET Framework 4 ou posterior, você deverá alterar o código gerado para o item da Faixa de Opções executando as etapas a seguir. Os arquivos de código que você precisa atualizar dependem da linguagem de programação e de como você criou o projeto:

  • Em projetos do Visual Basic ou em projetos do Visual C# que você criou no Visual Studio 2012 ou no Visual Studio 2010, execute todas as etapas no arquivo code-behind da Faixa de Opções (YourRibbonItem. Designer.cs ou YourRibbonItem. Desenhista.vb). Para ver o arquivo code-behind em projetos do Visual Basic, clique no botão Mostrar todos os arquivos no Gerenciador de Soluções.

  • Em projetos do Visual C# que você criou no Visual Studio 2008 e, em seguida, atualizou para o Visual Studio 2013, execute as duas primeiras etapas no arquivo de código da Faixa de Opções (YourRibbonItem.cs ou YourRibbonItem.vb) e execute as etapas restantes no arquivo code-behind da Faixa de Opções.

Para alterar o código da Faixa de Opções gerado

  1. Modifique a declaração da classe Ribbon para que ela derive de em vez de RibbonBase Microsoft.Office.Tools.Ribbon.OfficeRibbon.

  2. Modifique o construtor da classe Ribbon conforme mostrado abaixo. Se você tiver adicionado qualquer código próprio ao construtor, não altere seu código. Em projetos do Visual Basic, modifique somente o construtor sem parâmetros. Ignore o outro construtor.

    O exemplo de código a seguir mostra o construtor padrão de uma classe Ribbon em um projeto que se destina ao .NET Framework 3.5.

    public Ribbon1()
    {
        InitializeComponent();
    }
    

    O exemplo de código a seguir mostra o construtor padrão de uma classe Ribbon em um projeto que se destina ao .NET Framework 4 ou posterior.

    public Ribbon1()
        : base(Globals.Factory.GetRibbonFactory())
    {
        InitializeComponent();
    }
    
  3. InitializeComponent No método, modifique qualquer código que construa um controle Ribbon para que o código use um dos métodos auxiliares do RibbonFactory objeto.

    Observação

    Em projetos Visual C#, você deve expandir a região que é nomeada Component Designer generated code para ver o InitializeComponent método.

    Por exemplo, suponha que seu arquivo contém a seguinte linha de código que instancia um nomeado button1 em um RibbonButton projeto que tem como alvo o .NET Framework 3.5.

    this.button1 = new Microsoft.Office.Tools.Ribbon.RibbonButton();
    

    Em um projeto destinado ao .NET Framework 4 ou posterior, você deve usar o código a seguir.

    this.button1 = this.Factory.CreateRibbonButton();
    

    Para obter uma lista completa dos métodos auxiliares para os controles da Faixa de Opções, consulte Instanciar controles da Faixa de Opções.

  4. Em projetos Visual C#, modifique qualquer linha de código no InitializeComponent método que usa um delegado para usar um EventHandler<TEventArgs> delegado da Faixa de Opções específico.

    Por exemplo, suponha que seu arquivo contém a seguinte linha de código que manipula o Click evento em um projeto destinado ao .NET Framework 3.5.

    <CodeContentPlaceHolder>8 Em um projeto destinado ao .NET Framework 4 ou posterior, você deve usar o código a seguir.

    <CodeContentPlaceHolder>9 Para obter uma lista completa dos representantes da Faixa de Opções, consulte Manipular eventos da Faixa de Opções.

  5. Em projetos do Visual Basic, localize a ThisRibbonCollection classe no final do arquivo. Modifique a declaração dessa classe para que ela não herde mais do Microsoft.Office.Tools.Ribbon.RibbonReadOnlyCollection.

Instanciar controles da Faixa de Opções

Você deve modificar qualquer código que instancie dinamicamente os controles da Faixa de Opções. Em projetos destinados ao .NET Framework 3.5, controles da Faixa de Opções são classes que você pode instanciar diretamente em determinados cenários. Em projetos destinados ao .NET Framework 4 ou posterior, esses controles são interfaces que você não pode instanciar diretamente. Você deve criar os controles usando métodos fornecidos pelo RibbonFactory objeto.

Existem duas maneiras de acessar o objeto RibbonFactory:

  • Usando a propriedade Factory da classe Ribbon. Use essa abordagem no código na classe Ribbon.

  • Usando o método Globals.Factory.GetRibbonFactory. Use essa abordagem no código fora da classe Ribbon. Para obter mais informações sobre a classe Globals, consulte Acesso global a objetos em projetos do Office.

    O exemplo de código a seguir demonstra como criar um em uma classe Ribbon em um RibbonButton projeto que se destina ao .NET Framework 4 ou posterior.

<CodeContentPlaceHolder 10<CodeContentPlaceHolder>>11 A tabela a seguir lista os controles que você pode criar programaticamente e o método a ser usado para criar os controles em projetos destinados ao .NET Framework 4 ou posterior.

Control Método RibbonFactory a ser usado no .NET Framework 4 e projetos posteriores
RibbonButton CreateRibbonButton
RibbonButtonGroup CreateRibbonButtonGroup
RibbonCheckBox CreateRibbonCheckBox
RibbonComboBox CreateRibbonComboBox
RibbonDialogLauncher CreateRibbonDialogLauncher
RibbonDropDown: CreateRibbonDropDown
RibbonDropDownItem CreateRibbonDropDownItem
RibbonEditBox CreateRibbonEditBox
RibbonGallery CreateRibbonGallery
RibbonGroup CreateRibbonGroup
RibbonLabel CreateRibbonLabel
RibbonManager CreateRibbonManager
RibbonMenu CreateRibbonMenu
RibbonSeparator CreateRibbonSeparator
RibbonSplitButton CreateRibbonSplitButton
RibbonTab CreateRibbonTab
RibbonToggleButton CreateRibbonToggleButton

Manipular eventos da Faixa de Opções

Você deve modificar qualquer código que manipula eventos de controles da Faixa de Opções. Em projetos destinados ao .NET Framework 3.5, esses eventos são manipulados pelo delegado genérico EventHandler<TEventArgs> . Em projetos destinados ao .NET Framework 4 ou posterior, esses eventos agora são manipulados por outros representantes.

A tabela a seguir lista os eventos da Faixa de Opções e os delegados associados a eles em projetos destinados ao .NET Framework 4 ou posterior.

Evento Delegar para uso no .NET Framework 4 e projetos posteriores
LoadImage em uma classe Ribbon gerada RibbonLoadImageEventHandler
Load RibbonUIEventHandler
Click

Click

ItemsLoading

TextChanged

ButtonClick

ItemsLoading

SelectionChanged

TextChanged

ButtonClick

Click

ItemsLoading

DialogLauncherClick

ItemsLoading

Click

Click
RibbonControlEventHandler

Definir a posição de um componente da Faixa de Opções programaticamente

Você deve modificar qualquer código que defina a posição de grupos, guias ou controles da Faixa de Opções. Em projetos destinados ao .NET Framework 3.5, você pode usar os AfterOfficeId métodos e BeforeOfficeId da classe estática Microsoft.Office.Tools.Ribbon.RibbonPosition para atribuir a Position propriedade de um grupo, guia ou controle. Em projetos destinados ao .NET Framework 4 ou posterior, você deve acessar esses métodos usando a RibbonPosition propriedade fornecida pelo RibbonFactory objeto.

Existem duas maneiras de acessar o objeto RibbonFactory:

  • Usando a propriedade Factory da classe Ribbon. Use essa abordagem no código na classe Ribbon.

  • Usando o método Globals.Factory.GetRibbonFactory. Use essa abordagem no código fora da classe Ribbon. Para obter mais informações sobre a classe Globals, consulte Acesso global a objetos em projetos do Office.

    O exemplo de código a seguir demonstra como definir a Position propriedade de uma guia em uma classe Ribbon em um projeto que se destina ao .NET Framework 3.5.

this.tab1.Position = RibbonPosition.AfterOfficeId("TabHome");

O exemplo de código a seguir demonstra a mesma tarefa em um projeto que se destina o.NET Framework 4.

this.tab1.Position = this.Factory.RibbonPosition.AfterOfficeId("TabHome");