Aktualizowanie dostosowań wstążki zmigrowanych do programu .NET Framework 4.5

Jeśli projekt zawiera dostosowanie wstążki, które zostało utworzone przy użyciu elementu projektu wstążki (Visual Projektant), należy wprowadzić następujące zmiany w kodzie projektu, jeśli struktura docelowa zostanie zmieniona na program .NET Framework 4 lub nowszy.

  • Zmodyfikuj wygenerowany kod wstążki.

  • Zmodyfikuj dowolny kod, który tworzy wystąpienia kontrolek wstążki w czasie wykonywania, obsługuje zdarzenia wstążki lub ustawia położenie składnika wstążki programowo.

Aktualizowanie wygenerowanego kodu wstążki

Jeśli struktura docelowa projektu zostanie zmieniona na .NET Framework 4 lub nowszą, musisz zmienić wygenerowany kod dla elementu wstążki, wykonując następujące kroki. Pliki kodu, które należy zaktualizować, zależą od języka programowania i sposobu tworzenia projektu:

  • W projektach Visual Basic lub w projektach Visual C# utworzonych w programie Visual Studio 2012 lub Visual Studio 2010 wykonaj wszystkie kroki w pliku wstążki (YourRibbonItem.Projektant. cs lub YourRibbonItem.Projektant. vb). Aby wyświetlić plik za pomocą kodu w projektach Visual Basic, kliknij przycisk Pokaż wszystkie pliki w Eksplorator rozwiązań.

  • W projektach Visual C# utworzonych w programie Visual Studio 2008, a następnie uaktualnionych do programu Visual Studio 2013, wykonaj pierwsze dwa kroki w pliku kodu wstążki (YourRibbonItem.cs lub YourRibbonItem.vb) i wykonaj pozostałe kroki w pliku wstążki kodu za pomocą wstążki.

Aby zmienić wygenerowany kod wstążki

  1. Zmodyfikuj deklarację klasy wstążki, aby pochodziła z RibbonBase klasy zamiast Microsoft.Office.Tools.Ribbon.OfficeRibbon.

  2. Zmodyfikuj konstruktor klasy Wstążki, jak pokazano poniżej. Jeśli do konstruktora został dodany dowolny kod, nie należy zmieniać kodu. W projektach Visual Basic zmodyfikuj tylko konstruktor bez parametrów. Ignoruj inny konstruktor.

    Poniższy przykład kodu przedstawia domyślny konstruktor klasy wstążki w projekcie przeznaczonym dla programu .NET Framework 3.5.

    public Ribbon1()
    {
        InitializeComponent();
    }
    

    Poniższy przykład kodu przedstawia domyślny konstruktor klasy wstążki w projekcie przeznaczonym dla programu .NET Framework 4 lub nowszego.

    public Ribbon1()
        : base(Globals.Factory.GetRibbonFactory())
    {
        InitializeComponent();
    }
    
  3. W metodzie zmodyfikuj InitializeComponent dowolny kod tworzący kontrolkę wstążki, tak aby kod używał jednej z metod RibbonFactory pomocnika obiektu.

    Uwaga

    W projektach Visual C# należy rozwinąć region o nazwie Component Designer generated code , aby wyświetlić metodę InitializeComponent .

    Załóżmy na przykład, że plik zawiera następujący wiersz kodu, który tworzy wystąpienie RibbonButton elementu o nazwie button1 w projekcie przeznaczonym dla programu .NET Framework 3.5.

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

    W projekcie przeznaczonym dla programu .NET Framework 4 lub nowszego należy użyć następującego kodu.

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

    Aby uzyskać pełną listę metod pomocnika dla kontrolek wstążki, zobacz Tworzenie wystąpień kontrolek wstążki.

  4. W projektach Visual C# zmodyfikuj dowolny wiersz kodu w InitializeComponent metodzie, która używa delegata EventHandler<TEventArgs> do używania określonego delegata wstążki.

    Załóżmy na przykład, że plik zawiera następujący wiersz kodu, który obsługuje Click zdarzenie w projekcie przeznaczonym dla programu .NET Framework 3.5.

    <CodeContentPlaceHolder>8 W projekcie przeznaczonym dla programu .NET Framework 4 lub nowszego należy użyć następującego kodu.

    <CodeContentPlaceHolder>9 Aby uzyskać pełną listę delegatów wstążki, zobacz Obsługa zdarzeń wstążki.

  5. W projektach Visual Basic znajdź klasę ThisRibbonCollection na końcu pliku. Zmodyfikuj deklarację tej klasy, aby nie dziedziczyła już z Microsoft.Office.Tools.Ribbon.RibbonReadOnlyCollectionklasy .

Tworzenie wystąpień kontrolek wstążki

Należy zmodyfikować dowolny kod, który dynamicznie tworzy wystąpienia kontrolek wstążki. W projektach przeznaczonych dla programu .NET Framework 3.5 kontrolki wstążki to klasy, które można utworzyć bezpośrednio w niektórych scenariuszach. W projektach przeznaczonych dla programu .NET Framework 4 lub nowszego te kontrolki są interfejsami, których nie można utworzyć bezpośrednio. Kontrolki należy utworzyć przy użyciu metod dostarczanych przez RibbonFactory obiekt .

Istnieją dwa sposoby uzyskiwania RibbonFactory dostępu do obiektu:

  • Za pomocą właściwości Factory klasy Wstążki. Użyj podejścia z kodu w klasie wstążki.

  • Przy użyciu Globals.Factory.GetRibbonFactory metody . Użyj podejścia do kodu spoza klasy wstążki. Aby uzyskać więcej informacji na temat klasy Globals, zobacz Globalny dostęp do obiektów w projektach pakietu Office.

    W poniższym przykładzie kodu pokazano, jak utworzyć klasę RibbonButton wstążki w projekcie przeznaczonym dla programu .NET Framework 4 lub nowszego.

<CodeContentPlaceHolder>10<CodeContentPlaceHolder>11 Poniższa tabela zawiera listę kontrolek, które można utworzyć programowo i metodę do utworzenia kontrolek w projektach przeznaczonych dla programu .NET Framework 4 lub nowszego.

Kontrolka Metoda RibbonFactory do użycia w projektach .NET Framework 4 i nowszych
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

Obsługa zdarzeń wstążki

Należy zmodyfikować dowolny kod, który obsługuje zdarzenia kontrolek wstążki. W projektach przeznaczonych dla programu .NET Framework 3.5 te zdarzenia są obsługiwane przez delegata ogólnego EventHandler<TEventArgs> . W projektach przeznaczonych dla programu .NET Framework 4 lub nowszego te zdarzenia są teraz obsługiwane przez innych delegatów.

W poniższej tabeli wymieniono zdarzenia wstążki i delegaty skojarzone z nimi w projektach przeznaczonych dla programu .NET Framework 4 lub nowszego.

Wydarzenie Delegowanie do użycia w projektach .NET Framework 4 i nowszych
LoadImage zdarzenie w wygenerowanej klasie wstążki RibbonLoadImageEventHandler
Load RibbonUIEventHandler
Click

Click

ItemsLoading

TextChanged

ButtonClick

ItemsLoading

SelectionChanged

TextChanged

ButtonClick

Click

ItemsLoading

DialogLauncherClick

ItemsLoading

Click

Click
RibbonControlEventHandler

Programowe ustawianie położenia składnika wstążki

Należy zmodyfikować dowolny kod, który ustawia położenie grup wstążki, kart lub kontrolek. W projektach przeznaczonych dla programu .NET Framework 3.5 można użyć AfterOfficeId metod i BeforeOfficeId klasy statycznej Microsoft.Office.Tools.Ribbon.RibbonPosition , aby przypisać Position właściwość grupy, karty lub kontrolki. W projektach przeznaczonych dla programu .NET Framework 4 lub nowszego należy uzyskać dostęp do tych metod przy użyciu właściwości udostępnionej RibbonPositionRibbonFactory przez obiekt .

Istnieją dwa sposoby uzyskiwania RibbonFactory dostępu do obiektu:

  • Za pomocą Factory właściwości klasy Wstążki. Użyj podejścia z kodu w klasie wstążki.

  • Przy użyciu Globals.Factory.GetRibbonFactory metody . Użyj podejścia do kodu spoza klasy wstążki. Aby uzyskać więcej informacji na temat klasy Globals, zobacz Globalny dostęp do obiektów w projektach pakietu Office.

    W poniższym przykładzie kodu pokazano, jak ustawić Position właściwość karty w klasie wstążki w projekcie przeznaczonym dla programu .NET Framework 3.5.

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

W poniższym przykładzie kodu pokazano to samo zadanie w projekcie przeznaczonym dla programu .NET Framework 4.

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