Atualizando personalizações da Faixa de Opções nos projetos do Office migrados para o .NET Framework 4 ou o .NET Framework 4.5
Se o projeto contém uma personalização de fita que foi criado usando o item de projeto de Faixa de Opções (Visual Designer) , faça as seguintes alterações em seu código de projeto se a estrutura de destino é alterada para .NET Framework 4 ou a .NET Framework 4.5:
Modifique o código gerado de fita.
Modifique qualquer código que criar uma instância de controles fita em tempo de execução, manipular eventos de fita, ou definir a posição de um componente de fita programaticamente.
Atualizando o código gerado de fita
Se a estrutura de destino do seu projeto é modificado a .NET Framework 4 ou a .NET Framework 4.5, você deve modificar o código gerado para o item de fita executando as seguintes etapas.Os arquivos de código que você precisa atualizar dependem da linguagem de programação e como você criou o projeto:
Em projetos Visual Basic, ou Visual j# que você criou ou em Visual Studio 2012 ou Visual Studio 2010 executa todas as etapas em fita o arquivo code-behind (YourRibbonItem. Designer.cs ou YourRibbonItem. Designer.vb).Para ver o arquivo code-behind em projetos Visual Basic, clique no botão de Mostrar todos os arquivos em Gerenciador de Soluções.
No Visual j# que você criou no Visual Studio 2008 e atualizado na Visual Studio 2012, executa as duas primeiras etapas no arquivo de código de fita (YourRibbonItemYourRibbonItem.cs ou .vb), e executam-se as etapas em outros fita o arquivo code-behind.
Para modificar o código gerado de fita
Altere a declaração de classe de fita de modo que deriva de Microsoft.Office.Tools.Ribbon.RibbonBase em vez de Microsoft.Office.Tools.Ribbon.OfficeRibbon.
Modifique o construtor da classe de fita como mostrado abaixo.Se você adicionou algum do seu próprio código para o construtor, sem alterar o código.Em projetos Visual Basic, modifique somente o construtor sem parâmetros.Ignorar outro construtor.
O exemplo de código a seguir mostra o construtor padrão de uma classe de fita em um projeto que tem como alvo 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 fita em um projeto que tem como alvo .NET Framework 4 ou .NET Framework 4.5.
Public Sub New() MyBase.New(Globals.Factory.GetRibbonFactory()) InitializeComponent() End Sub
public Ribbon1() : base(Globals.Factory.GetRibbonFactory()) { InitializeComponent(); }
No método de InitializeComponent , modifique qualquer código que criar um controle de fita de modo que o código use o marcador um dos métodos auxiliares de objeto de RibbonFactory .
Observação Em projetos Visual c#, você deve expandir a região que é chamada Component Designer generated code para ver o método de InitializeComponent .
Por exemplo, suponha que seu arquivo contém a seguinte linha de código que cria uma instância 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 tem como alvo .NET Framework 4 ou .NET Framework 4.5, você deve usar o código a seguir 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 de fita, consulte Criando uma instância de controles fita.
Em projetos Visual c#, modifique qualquer linha de código no método de InitializeComponent que usa um representante de EventHandler<TEventArgs> para usar um destino específico de fita.
Por exemplo, suponha que seu arquivo contém a seguinte linha de código que manipula o evento de RibbonButton.Click 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 tem como alvo .NET Framework 4 ou .NET Framework 4.5, você deve usar o código a seguir em vez disso.
this.button1.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler( this.button1_Click);
Para obter uma lista completa dos representantes de fita, consulte Eventos de fita de manipulação.
Em projetos Visual Basic, localize a classe de ThisRibbonCollection no final do arquivo.Altere a declaração desta classe para que não herda de Microsoft.Office.Tools.Ribbon.RibbonReadOnlyCollection.
Criando uma instância de controles fita
Você deve alterar qualquer código que criar uma instância de controles dinamicamente fita.Em projetos que direcionam o.NET Framework 3.5, os controles de fita são classes que você pode criar uma instância diretamente em determinadas situações.Em projetos que destinam-se .NET Framework 4 ou .NET Framework 4.5, esses controles são interfaces que você não pode criar uma instância diretamente.Você deve criar os controles usando os métodos que são fornecidos pelo objeto de RibbonFactory .
Há duas maneiras para acessar o objeto de RibbonFactory :
Usando a propriedade de Factory fita de classe.Utilize esta abordagem de código em sua classe de fita.
Usando o método Globals.Factory.GetRibbonFactory .Utilize esta abordagem de código fora da classe de fita.Para obter mais informações sobre a classe Globals, consulte Acesso global a objetos em projetos do Office.
O exemplo de código demonstra como criar RibbonButton em uma classe de fita em um projeto que tem como alvo .NET Framework 4 ou .NET Framework 4.5.
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 usar para criar os controles nos projetos que destinam-se .NET Framework 4 ou .NET Framework 4.5.
Controle |
Método de RibbonFactory para usar em .NET Framework 4 e em projetos de .NET Framework 4.5 |
---|---|
Eventos de fita de manipulação
Você deve alterar qualquer código que manipular eventos de controles de fita.Em projetos que direcionam o.NET Framework 3.5, esses eventos são tratadas pelo delegado genérico de EventHandler<TEventArgs> .Em projetos que destinam-se .NET Framework 4 ou .NET Framework 4.5, esses eventos são tratados agora por outros representantes.
A seguinte tabela lista os eventos de fita e representantes que são associados com eles nos projetos que destinam-se .NET Framework 4 ou .NET Framework 4.5.
Evento |
Representante para usar em .NET Framework 4 e em projetos de .NET Framework 4.5 |
---|---|
evento deLoadImage em uma classe gerada de fita |
|
RibbonDropDown.SelectionChanged |
Definindo a posição de um componente de fita programaticamente
Você deve alterar qualquer código que defina a posição de grupos, de guias, ou controles de fita.Em projetos que direcionam o.NET Framework 3.5, você pode usar AfterOfficeId e métodos de BeforeOfficeId de Microsoft.Office.Tools.Ribbon.RibbonPosition classe estática para atribuir a propriedade de Position de um grupo, um guia, ou controle.Em projetos que destinam-se .NET Framework 4 ou .NET Framework 4.5, você deve acessar esses métodos usando a propriedade de RibbonPosition fornecida pelo objeto de RibbonFactory .
Há duas maneiras para acessar o objeto de RibbonFactory :
Usando a propriedade de Factory fita de classe.Utilize esta abordagem de código em sua classe de fita.
Usando o método Globals.Factory.GetRibbonFactory .Utilize esta abordagem de código fora da classe de fita.Para obter mais informações sobre a classe Globals, consulte Acesso global a objetos em projetos do Office.
O exemplo de código demonstra como definir a propriedade de Position de uma guia em uma classe de fita 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 tem como alvo .NET Framework 4.
Me.tab1.Position = Me.Factory.RibbonPosition.AfterOfficeId("TabHome")
this.tab1.Position = this.Factory.RibbonPosition.AfterOfficeId("TabHome");
Consulte também
Conceitos
Migrando soluções do Office para o .NET Framework 4 ou o .NET Framework 4.5