Atualizando as personalizações da faixa de opções em projetos do Office que você migrar para o.NET Framework 4
Se o seu projeto contém uma personalização de faixa de opções foi criada usando o a faixa de opções (Visual Designer) item de projeto, você deve fazer as seguintes alterações ao seu código do projeto se a estrutura de destino for alterada para o .NET Framework 4:
Modificar o código gerado de faixa de opções.
Modificar qualquer código que instancia controles da faixa de opções em tempo de execução, trata os eventos da faixa de opções ou define a posição de um componente de faixa de opções programaticamente.
Atualizando o código gerado de faixa de opções
Se a estrutura de destino do projeto é alterada para o .NET Framework 4, você deve alterar o código gerado para o item de faixa de opções seguindo as etapas a seguir. Você precisa atualizar os arquivos de código dependem da linguagem de programação e como você criou o projeto:
Em projetos de Visual Basic ou em projetos do Visual C# que você criou na Visual Studio 2010, execute todas as etapas no arquivo code-behind da faixa de opções (YourRibbonItem.CS ou YourRibbonItem.Designer). Para ver o arquivo code-behind em projetos de Visual Basic, clique na Mostrar todos os arquivos botão no Solution Explorer.
Em projetos do Visual C# criado em Visual Studio de 2008 e depois atualizou para o Visual Studio 2010, 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 gerado de faixa de opções
Modifique a declaração da classe da faixa de opções, para que ele deriva de Microsoft.Office.Tools.Ribbon.RibbonBase em vez de Microsoft.Office.Tools.Ribbon.OfficeRibbon.
Modificar o construtor da classe da faixa de opções, como mostrado abaixo. Se você tiver adicionado alguma parte do próprio código para o construtor, não altere seu código. Em projetos de Visual Basic, modificar apenas o construtor sem parâmetros. Ignore o outro construtor.
O exemplo de código a seguir mostra o construtor padrão de uma classe de faixa de opções em um projeto voltado para o.NET Framework 3.5.
Public Sub New() MyBase.New() InitializeComponent() End Sub
public Ribbon1() { InitializeComponent(); }
O exemplo de código a seguir mostra o construtor padrão de uma classe de faixa de opções em um projeto voltado para o .NET Framework 4.
Public Sub New() MyBase.New(Globals.Factory.GetRibbonFactory()) InitializeComponent() End Sub
public Ribbon1() : base(Globals.Factory.GetRibbonFactory()) { InitializeComponent(); }
No InitializeComponent método, modificar qualquer código que constrói um controle de faixa de opções para que o código em vez disso, usa um dos métodos de auxiliar a RibbonFactory objeto.
Observação Em projetos do Visual C#, você deve expandir a região denominada Component Designer generated code para ver o InitializeComponent método.
Por exemplo, suponha que o arquivo contém a seguinte linha de código que instancia um RibbonButton chamado button1 em um projeto que tem como alvo o.NET Framework 3.5.
Me.button1 = New Microsoft.Office.Tools.Ribbon.RibbonButton()
this.button1 = new Microsoft.Office.Tools.Ribbon.RibbonButton();
Em um projeto que se destina a .NET Framework 4, você deve usar o seguinte código em vez disso.
Me.button1 = Me.Factory.CreateRibbonButton()
this.button1 = this.Factory.CreateRibbonButton();
Para obter uma lista completa dos métodos auxiliares para os controles da faixa de opções, consulte Instanciando controles da faixa de opções.
Em projetos do Visual C#, modificar qualquer linha de código na InitializeComponent método que usa um EventHandler<TEventArgs> delegate para usar um delegado específico da faixa de opções em vez disso.
Por exemplo, suponha que o arquivo contém a seguinte linha de código que manipula a RibbonButton.Click o evento em um projeto que tem como alvo o.NET Framework 3.5.
this.button1.Click += new System.EventHandler<Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs>( this.button1_Click);
Em um projeto que se destina a .NET Framework 4, você deve usar o seguinte código em vez disso.
this.button1.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler( this.button1_Click);
Para obter uma lista completa de delegados a faixa de opções, consulte De manipulação de eventos de faixa de opções.
Em projetos de Visual Basic, localize o ThisRibbonCollection classe no final do arquivo. Modifique a declaração dessa classe, para que ele não herda de Microsoft.Office.Tools.Ribbon.RibbonReadOnlyCollection.
Criar uma instância de controles da faixa de opções
Você deve modificar qualquer código que instancia dinamicamente os controles da faixa de opções. Em projetos destinados a.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 a .NET Framework 4, esses controles são interfaces que você não pode criar uma instância diretamente. Você deve criar os controles usando métodos fornecidos pelo RibbonFactory objeto.
Há duas maneiras para acessar o RibbonFactory objeto:
Usando o Factory propriedade da classe de faixa de opções. Use essa abordagem do código na sua classe de faixa de opções.
Usando o Globals.Factory.GetRibbonFactory método. Use essa abordagem do código fora de sua classe de faixa de opções. For more information about the Globals class, see Acesso global a objetos em projetos do Office.
O exemplo de código a seguir demonstra como criar um RibbonButton em uma classe de faixa de opções em um projeto que se destina a .NET Framework 4.
Dim button As Microsoft.Office.Tools.Ribbon.RibbonButton =
Me.Factory.CreateRibbonButton()
Microsoft.Office.Tools.Ribbon.RibbonButton button =
this.Factory.CreateRibbonButton();
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 a .NET Framework 4.
Control |
O método RibbonFactory para usar em .NET Framework 4 projetos |
---|---|
Faixa de opções de manipulação de eventos
Você deve modificar qualquer código que manipula eventos de controles da faixa de opções. Em projetos destinados a.NET Framework 3.5, esses eventos são manipulados pelo genérico EventHandler<TEventArgs> delegate. Em projetos destinados a .NET Framework 4, esses eventos são agora manipulados por outros representantes.
A tabela a seguir lista os eventos de faixa de opções e os representantes que estão associados com eles em projetos que visam a .NET Framework 4.
Event |
Delegado para usar em .NET Framework 4 projetos |
---|---|
LoadImageevento em uma classe gerada da faixa de opções |
|
RibbonDropDown.SelectionChanged |
Definindo a posição de um componente de faixa de opções por programação
Você deve modificar qualquer código que define a posição de grupos, guias ou controles da faixa de opções. Em projetos destinados a.NET Framework 3.5, você pode usar o AfterOfficeId e BeforeOfficeId métodos de estática Microsoft.Office.Tools.Ribbon.RibbonPosition classe para atribuir o Position a propriedade de um grupo, guia ou controle. Em projetos destinados a .NET Framework 4, acesso a esses métodos usando a RibbonPosition propriedade fornecida pelo RibbonFactory objeto.
Há duas maneiras para acessar o RibbonFactory objeto:
Usando o Factory propriedade da classe de faixa de opções. Use essa abordagem do código na sua classe de faixa de opções.
Usando o Globals.Factory.GetRibbonFactory método. Use essa abordagem do código fora de sua classe de faixa de opções. For more information about the Globals class, see Acesso global a objetos em projetos do Office.
O exemplo de código a seguir demonstra como definir o propriedade dePosition de uma guia em uma classe de faixa de opções em um projeto que tem como alvo o.NET Framework 3.5.
Me.tab1.Position = RibbonPosition.AfterOfficeId("TabHome")
this.tab1.Position = RibbonPosition.AfterOfficeId("TabHome");
O exemplo de código a seguir demonstra a mesma tarefa em um projeto que se destina a .NET Framework 4.
Me.tab1.Position = Me.Factory.RibbonPosition.AfterOfficeId("TabHome")
this.tab1.Position = this.Factory.RibbonPosition.AfterOfficeId("TabHome");