Aggiornare le personalizzazioni della barra multifunzione migrate a .NET Framework 4.5
Se il progetto contiene una personalizzazione della barra multifunzione creata tramite l'elemento di progetto Ribbon (Visual Designer), è necessario apportare le modifiche seguenti al codice del progetto se il framework di destinazione viene modificato in .NET Framework 4 o versione successiva.
Modificare il codice della barra multifunzione generato.
Modificare qualsiasi codice che crea un'istanza dei controlli della barra multifunzione in fase di esecuzione, gestisce gli eventi della barra multifunzione o imposta la posizione di un componente della barra multifunzione a livello di codice.
Aggiornare il codice della barra multifunzione generato
Se il framework di destinazione del progetto viene modificato in .NET Framework 4 o versione successiva, è necessario modificare il codice generato per l'elemento della barra multifunzione eseguendo la procedura seguente. I file di codice che è necessario aggiornare dipendono dal linguaggio di programmazione e dalla modalità di creazione del progetto:
Nei progetti Visual Basic o nei progetti Visual C# creati in Visual Studio 2012 o Visual Studio 2010 eseguono tutti i passaggi nel file code-behind della barra multifunzione (YourRibbonItem. Designer.cs o YourRibbonItem. Designer.vb). Per visualizzare il file code-behind nei progetti Visual Basic, fare clic sul pulsante Mostra tutti i file in Esplora soluzioni.
Nei progetti Visual C# creati in Visual Studio 2008 e quindi aggiornati a Visual Studio 2013, eseguire i primi due passaggi nel file di codice della barra multifunzione (YourRibbonItem.cs o YourRibbonItem.vb) ed eseguire i passaggi rimanenti nel file code-behind della barra multifunzione.
Per modificare il codice della barra multifunzione generato
Modificare la dichiarazione della classe Ribbon in modo che derivi da RibbonBase anziché da
Microsoft.Office.Tools.Ribbon.OfficeRibbon
.Modificare il costruttore della classe Ribbon come illustrato di seguito. Se è stato aggiunto codice al costruttore, non modificare il codice. Nei progetti Visual Basic modificare solo il costruttore senza parametri. Ignorare l'altro costruttore.
L'esempio di codice seguente illustra il costruttore predefinito di una classe Ribbon in un progetto destinato a .NET Framework 3.5
Nell'esempio di codice seguente viene illustrato il costruttore predefinito di una classe Ribbon in un progetto destinato a .NET Framework 4 o versione successiva.
Nel metodo
InitializeComponent
modificare il codice con il quale viene costruito un controllo barra multifunzione in modo che il codice usi invece uno dei metodi di supporto dell'oggetto RibbonFactory.Nota
Nei progetti Visual C# è necessario espandere l'area denominata
Component Designer generated code
per visualizzare il metodoInitializeComponent
.Ad esempio, si supponga che il file contenga la riga di codice seguente con la quale viene creata un'istanza di un oggetto RibbonButton denominata
button1
in un progetto destinato a .NET Framework 3.5.In un progetto destinato a .NET Framework 4 o versione successiva, è invece necessario usare il codice seguente.
Per un elenco completo dei metodi helper per i controlli della barra multifunzione, vedere Creare un'istanza dei controlli della barra multifunzione.
Nei progetti Visual C# modificare qualsiasi riga di codice nel metodo
InitializeComponent
che usa un delegato EventHandler<TEventArgs> per usare invece un delegato specifico della barra multifunzione.Ad esempio, si supponga che il file contenga la riga di codice seguente con la quale viene gestito l'evento Click in un progetto destinato a .NET Framework 3.5.
<CodeContentPlaceHolder>8 In un progetto destinato a .NET Framework 4 o versione successiva, è invece necessario usare il codice seguente.
<CodeContentPlaceHolder>9 Per un elenco completo dei delegati della barra multifunzione, vedere Gestire gli eventi della barra multifunzione.
Nei progetti Visual Basic trovare la classe
ThisRibbonCollection
alla fine del file. Modificare la dichiarazione della classe in modo che non erediti più daMicrosoft.Office.Tools.Ribbon.RibbonReadOnlyCollection
.
Creare un'istanza dei controlli della barra multifunzione
È necessario modificare il codice che crea dinamicamente un'istanza dei controlli barra multifunzione. Nei progetti destinati a .NET Framework 3.5 i controlli barra multifunzione sono classi per le quali è possibile creare un'istanza direttamente in alcuni scenari. Nei progetti destinati a .NET Framework 4 o versione successiva, questi controlli sono interfacce di cui non è possibile creare direttamente un'istanza. È necessario creare i controlli con i metodi forniti dall'oggetto RibbonFactory.
Sono disponibili due modi per accedere all'oggetto RibbonFactory:
Utilizzando la proprietà Factory della classe Ribbon. Usare questo approccio dal codice della classe Ribbon.
Usando il metodo
Globals.Factory.GetRibbonFactory
. Usare questo approccio dal codice all'esterno della classe Ribbon. Per altre informazioni sulla classe Globals, vedere Accesso globale agli oggetti nei progetti di Office.Nell'esempio di codice seguente viene illustrato come creare un oggetto RibbonButton in una classe Ribbon in un progetto destinato a .NET Framework 4 o versione successiva.
<CodeContentPlaceHolder>10<CodeContentPlaceHolder>11 La tabella seguente elenca i controlli che è possibile creare a livello di codice e il metodo da usare per creare i controlli nei progetti destinati a .NET Framework 4 o versione successiva.
Gestire gli eventi della barra multifunzione
È necessario modificare il codice che gestisce gli eventi dei controlli barra multifunzione. Nei progetti destinati a .NET Framework 3.5 questi eventi sono gestiti dal delegato EventHandler<TEventArgs> generico. Nei progetti destinati a .NET Framework 4 o versione successiva, questi eventi vengono ora gestiti da altri delegati.
La tabella seguente elenca gli eventi della barra multifunzione e i delegati associati nei progetti destinati a .NET Framework 4 o versione successiva.
Evento | Delegare l'uso in progetti .NET Framework 4 e versioni successive |
---|---|
Evento LoadImage in una classe Ribbon generata | RibbonLoadImageEventHandler |
Load | RibbonUIEventHandler |
Click Click ItemsLoading TextChanged ButtonClick ItemsLoading SelectionChanged TextChanged ButtonClick Click ItemsLoading DialogLauncherClick ItemsLoading Click Click |
RibbonControlEventHandler |
Impostare la posizione di un componente della barra multifunzione a livello di codice
È necessario modificare il codice che imposta la posizione di gruppi, schede o controlli barra multifunzione. Nei progetti destinati a .NET Framework 3.5 è possibile usare i metodi AfterOfficeId
e BeforeOfficeId
della classe Microsoft.Office.Tools.Ribbon.RibbonPosition
statica per assegnare la proprietà Position
di un gruppo, una scheda o un controllo. Nei progetti destinati a .NET Framework 4 o versione successiva, è necessario accedere a questi metodi usando la RibbonPosition proprietà fornita dall'oggetto RibbonFactory .
Sono disponibili due modi per accedere all'oggetto RibbonFactory:
Usando la proprietà
Factory
della classe Ribbon. Usare questo approccio dal codice della classe Ribbon.Usando il metodo
Globals.Factory.GetRibbonFactory
. Usare questo approccio dal codice all'esterno della classe Ribbon. Per altre informazioni sulla classe Globals, vedere Accesso globale agli oggetti nei progetti di Office.L'esempio di codice seguente dimostra come impostare la proprietà
Position
di una scheda in una classe Ribbon in un progetto destinato a .NET Framework 3.5.
L'esempio di codice seguente illustra la stessa attività in un progetto destinato a .NET Framework 4.